请高手帮忙看下下面程序什么地方有问题,执行就弹错误窗口,编译能过,非常感谢!座等。编译器:VC6.0

#include <stdio.h>

void main()
{
char *p="abc";
char *q="efg";
int i=0,j=0;

while(*(p+i)!='\0')
{
i++;
}
do
{
*(p+i)=*(q+j);
i++;
j++;
}while(*(p+i-1)!='\0');
printf("%s\n",p);
}

这明显是段错误,位于:*(p+i)=*(q+j); 处,p指针指向的是一个静态字符串,因此当然不能再其后追加的。
如果要改,把 char *p="abc"; 语句替换为
char str[10] = "abc";
char *p=str;
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答