可能重复:
Why does simple C code receive segmentation fault?改变一个字符串值抛出分段错误
嗨,
看看下面的代码:
int main(int argc, char* argv[]){
char* a = "z.x.f.t.e.a";
char* b = ".";
updateStr(a,b);
return 0;
}
int updateStr(char str[], const char* delim) {
int i=0;
int wordsCounter = 0;
while (str[i] != '\0') {
if (contains(delim,str[i])) {
printf("CONTAINED %c\n",str[i]); //debug
str[i] = SEPERATOR;
wordsCounter++;
}
i++;
}
//REST OF THE CODE....
return wordsCounter;
}
updateStr取代每个'。'与';' (分隔符)。然而,行str [i] = SEPERATOR; 抛出分段错误,我不知道为什么。什么原因,我该如何解决它?
谢谢大家
重复多次。 – 2010-08-23 17:45:37
你应该明确地声明'a'是一个char数组,而不是char指针 – 2010-08-23 17:46:28
@Carl Agree,但是标题可能会有所不同,因此不能在快速搜索中找到。 – Tom 2010-08-23 17:49:20