【发布时间】:2017-12-06 18:23:27
【问题描述】:
我环顾四周,在其他问题中找不到我的问题的解决方案。出于某种原因,当我运行我的程序时出现分段错误,这似乎是因为我正在更改给定字符串。我尝试将指针传递给 char 指针并对其进行编辑,但无济于事。
我得到了什么:
之前:胡安巴勃罗 分段错误(核心转储)
我的代码:
void rm_char(char* word, int pos){
printf("before: %s\n", word);
int len = strlen(word);
int i;
i = pos;
while(word[i+1] != '\0'){
word[i] = word[i+1];
i++;
}
word[i] = '\0';
printf("after: %s\n", word);
}
int main(void){
rm_char("juanpablo", 2);
}
【问题讨论】:
-
编译器的唯一职责是编译代码。如果是这样,剩下的就是代码本身了。
标签: c string segmentation-fault string-literals