【问题标题】:Char pointer assignment segment fault字符指针分配段错误
【发布时间】:2011-07-23 11:36:35
【问题描述】:
#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;”的赋值语句时出现段错误...

有人告诉我为什么,提前谢谢!

【问题讨论】:

  • 您的意思是™pslow=pfast;

标签: c string segmentation-fault variable-assignment


【解决方案1】:

您正在尝试更改导致未定义行为的字符串文字。

改变

char *str="abcdce";

char str[] ="abcdce";

【讨论】:

  • @witmusk:不客气。由于您是新人,到目前为止还没有接受您提出的任何问题的答案,我想告诉您,您可以通过单击答案旁边的右标记来标记帮助您解决问题的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
相关资源
最近更新 更多