#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;"的赋值语句时出现segment fault...
有人告诉我为什么,提前谢谢!
最佳答案
您正在尝试更改导致未定义行为的字符串文字。
改变
char *str="abcdce";
到
char str[] ="abcdce";
关于字符指针赋值段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5442468/