可能重複:
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