用vc++写出的程序提示“遇到问题需要关闭”,怎么解决

用vc++写出的程序提示“遇到问题需要关闭。我们对此引起的不便表示抱歉。” #include "stdio.h" #include "string.h" void fun(char *a,char m) { int i,j=0,n=strlen(a); char *p=a; for(i=0;i<n;i++) if(p[i]!=m) a[j++]=p[i]; a[j]='\0'; } main() { char *a="abcdefadsf",b; puts(a); printf("b:"); scanf("%c",&b); fun(a,b); puts(a); } 用win-tc一切正常 高手指点一下。

问题解决了 char *a="abcdefadsf",b; 因为这里的字符串是直接用指针表示的,而指针不具备索引功能,所以只要改成 char a[] = "abcdefadsf", b;就行了。 虽说数组名也是指针,但它比一般的指针多一个索引功能,而且它还是常量,这在书上的数组与指针中有讲到。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-19
a指向的是一个常量字符串啊?怎么可能可能对其内容进行修改呢?? 肯定会出错的吧?? 而且把修改放到函数里去执行,更是把错误给隐藏起来了。 你应该可以把a指向的内容做一份拷贝,那就可以了。
相似回答