1
每次我嘗試使用strtok()我得到一個分段錯誤。不知道爲什麼 - 我是新來的C.strtok()在c - 分段錯誤
這裏是我的代碼:
#include "shellutils.h"
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv)
{
char input[150];
while(1) {
prompt();
fgets(input, 150, stdin);
char *fst_tkn = strtok(input, " ");
printf("%s", fst_tkn);
if(feof(stdin) != 0 || input == NULL) {
printf("Auf Bald!\n");
exit(3);
}
}
}
感謝您的幫助!
您應該檢查是否'fst_tkn'不是'NULL'甚至在第一次調用'strtok'後。 –
btw,返回'EXIT_FAILURE'而不是任意值,它在'stdlib.h'中聲明。 – effeffe
此編碼是否正確?你應該'#include'正確地選擇strtok,至少在Linux上。當行是'strtok(input,'');'(注意單引號)時,我可以得到一個類似的seg錯誤,但它對我來說可以像上面輸入的那樣工作。 –
Joe