以下幾行代碼給了我一個分段錯誤。這些寄存器是:inputPtr = 00 PRNT 02(來自stdin的正確輸入)fgets後,inputPtr = 00後第一個strtok()和inputPtr =(null)後第二個strtok()使用strtok()將字符串拆分爲3部分
if/else with return 3;是一個錯誤檢查。
問題據我所知,它是第二次調用strtok()不在PRNT中讀取,所以我得到爲什麼段錯誤發生。我真的很希望能夠閱讀PRNT。 有一點幫助會很棒!謝謝!
fgets(input, 15, stdin);
/*Tokenize instr00 into "00"(instructionCounter) "INST"(operationCode) and "OP"(operand)*/
if(atoi(strtok(inputPtr, " ")) >= 0 && atoi(strtok(inputPtr, " ")) <= 99)
{
*instructionCounter = atoi(strtok(inputPtr, " "));
}
else
{
return 3;
}
inputPtr = strtok(NULL, " ");
是吧'與fgets(輸入,15,標準輸入);'或'與fgets(inputPtr,15,標準輸入);' –