初学者求教一个关于指针的简单问题
void main()
{ int m=7;//拷贝位置
char *a="i love china";
char *b="you";
char *pa=a+m;
char *pb=b;
while(*pb!='\0')
{
*pa=*pb;
pa++;
pb++;
}
pa+='\0';
printf("%s\n",a);
这是一个字符串拷贝函数,将字符串b拷贝到字符串a指定位置.
调试到*pa=*pb出现了错误,请问是什么问题,怎么解决?
[解决办法]
char *a="i love china";
char *b="you";
char *pa=a+m;
这三个指针指向常量字符串,常量只能读取禁止更改
[解决办法]
char *a="i love china";
char *b="you"; 这两个字符串都是存在数据常量区的
char *pa;
char *pb;这两个指针都没有申请内存
你试试先申请内存,再拷贝
[解决办法]
char a[]="i love china";
char b[]="you";
原来那样字符串存放的内存是只读的,这样就行了