首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-09-16 
初学者求教一个关于指针的简单问题void main(){int m7//拷贝位置char *ai love chinachar *byou

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

热点排行