name[0]是一个指针,指向"abc"这个字符串常量。在C语言中,字符串常量被存储在代码段中,只可读不可修改。strcpy函数要拷贝"ABC"到name[0]指向的内存区域(即代码段的字符串常量区),那个区域不可写,所以出现错误。
如果想修改,那么不要用字符串常量而是用字符串变量。下面是修改后的代码
#include
#include
int main()
{
char name[2][4]={"abc","efg"};
strcpy(name[0],"ABC");
printf("%s\n",name[0]);
return 0;
}
这样name是一个二维数组,abc和efg都存在数组里,可以修改。