char *str[2]={"red","blue"};
strcpy(str[1],str[0]);
printf("%s",str[0]);
请大神赐教这个复制错在哪?
指针数组中字符串复制问题
答案:1 悬赏:80
解决时间 2021-11-09 18:59
- 提问者网友:先森请一心
- 2021-11-09 07:50
最佳答案
- 二级知识专家网友:余生继续浪
- 2021-11-09 08:20
char *str[2]={"red","blue"};可以等同为:
const char* cstr1 = "red";
const char* cstr2 = "blue";
char* str[2];
str[0] = cstr1;
str[1] = cstr2;也就是说, str 的成员只是个指针,并没有分配内存空间,如果进行字符串操作,则数组跨界访问!
可以修改为:
typedef char MyStr[64];
MyStr str[2] = {"red","blue"};
const char* cstr1 = "red";
const char* cstr2 = "blue";
char* str[2];
str[0] = cstr1;
str[1] = cstr2;也就是说, str 的成员只是个指针,并没有分配内存空间,如果进行字符串操作,则数组跨界访问!
可以修改为:
typedef char MyStr[64];
MyStr str[2] = {"red","blue"};
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯