我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 关于C中的字符串指针的拷贝 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

jasper





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 482
威望: 0
浮云: 1140
在线等级:
注册时间: 2005-10-04
最后登陆: 2009-05-07

5come5帮你背单词 [ hijack /'haid3əæk/ vt. 动持,拦路抢动 ]


关于C中的字符串指针的拷贝

以前用strcpy在字符串指针间拷贝的时候经常出错
数组太不好用了,要显示指定字符串长度。
最近才发现原来是没有对字符串分配内存的原因。

例:
#include <stdio.h>
#include <stdlib.h>

int main()
{
  char *ch = "hello world";
  char *ch2;
  ch2 = (char *)malloc(strlen(ch));  /* 如果没有显示分配内存,则拷贝将失败 */
  strcpy(ch2, ch);
  printf("%s\n",ch2);
  return 0;
}

不知道以前兄弟们有没有遇到过这种情况,一点小小的经验和大家分享
顶端 Posted: 2007-08-12 15:04 | [楼 主]
zhoubaozhou





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 696
威望: 0
浮云: 1082
在线等级:
注册时间: 2007-03-13
最后登陆: 2023-01-26

5come5帮你背单词 [ miniature /'minjətə/ n. 袖珍画,缩样 ]


ch2 = (char *)malloc(strlen(ch));  /* 如果没有显示分配内存,则拷贝将失败 */
要判断申请内存成功了没有
还有退出时要free(ch2);
虽然操作系统在程序退出时会自动回收内存,但是在程序运行时记得要回收


[ 此贴被zhoubaozhou在2007-08-13 12:20重新编辑 ]
顶端 Posted: 2007-08-12 16:07 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.009245(s) query 6, Time now is:11-23 08:26, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号