字符指针分配段错误
#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;”的赋值语句时出现段错误...
有人告诉我为什么,先谢谢了!
#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;
}
segment fault when it runs to the assignment statement of "*pslow=*pfast;"...
Somebody tell me why, thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在尝试更改导致未定义行为的字符串文字。
更改
为
You are trying to change a string literal which leads to undefined behavior.
Change
to