這個問題在這里已經有了答案: strtok() 段錯誤 2 個答案 20 小時前關閉。
我正在撰寫一個程式,我需要一個在字串中找到的不同單詞的二維陣列。它從鏈表中獲取起始字串。
目前,這就是我所擁有的,它提供了一個段錯誤:
int main () {
char word_pal[120]; //max length needed is 120
char *token;
char pal_arr[64][120];
int i = 0;
strcpy(word_pal, header->name); //header->name is "string to be split"
token = strtok(word_pal, " ");
strcpy(pal_arr[i], token);
while (token != NULL) {
i ;
token = strtok(NULL, " ");
strcpy(pal_arr[i], token);
}
return 0;
}
我在整個程序中都放了一些列印陳述句,這似乎是把token = strtok(NULL, " ");事情搞砸的那一行,但我不知道為什么。
我該如何解決這個問題?
uj5u.com熱心網友回復:
strtok回傳時NULL,變數token將為NULL。然后你使用token(它可能是NULL)作為 strcpy 的引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470611.html
標籤:C
