读书人

菜鸟求教一个关于指针的简单有关问题

发布时间: 2012-09-16 17:33:16 作者: rapoo

初学者求教一个关于指针的简单问题
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";
原来那样字符串存放的内存是只读的,这样就行了

读书人网 >C++

热点推荐