#include <stdio.h>
#include <stdlib.h>
int main(){
char *str="abcdce";
char c='c';
char *pfast=str,*pslow=str;
while(*pfast!='\0'){
if(*pfast==c){
pfast++;
*pslow=*pfast; //error here when pfast reaches the first 'c'
}
pfast++;
pslow++;
}
*pslow='\0';
return 0;
}
运行到“ * pslow = * pfast;”的赋值语句时出现段故障...
有人告诉我为什么,在此先感谢!
最佳答案
您正在尝试更改导致未定义行为的字符串文字。
更改
char *str="abcdce";
至
char str[] ="abcdce";
关于c - 字符指针分配段故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5442468/