int main()
{
char *a1[10] = {"123","121"};
int i =0;
char *a=NULL;
for(i=0;i<2;i++)
{
a=strcat(a1[i],"0000");
printf("values %s",a);
}
}
这段代码的输出结果是这样的 $./a.exe 值 1230000 值 0000000
但应该是 $./a.exe 值 1230000 值 1210000
请告诉我哪里错了
最佳答案
你想要一个 char
的数组,但是 char *a1[10]
是一个指向 char
的指针数组(通常放在在只读段/字符串文字中),尝试修改字符串文字通常会导致段错误。
改变
char *a1[10] = {"123","121"}; /* Array of string literals (read only) */
到
char a1[][10] = {"123","121"}; /* Array of array of char (read - write) */
关于c - 数组第二个元素的值未正确打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26797825/