我想在二維指針數組中存儲句子列表。下面的代碼給出了循環evlauted剛過分段錯誤(我查了printf語句;循環內不含語句執行):使用fgets時的分段錯誤()
int main(int argc, char** argv){
char *inputarray[MAX_LINE];
int count = 0;
//char cpy[MAX_LENGTH] <---- This one doesn't work either
char *cpy = (char*) calloc (MAX_LENGTH, sizeof(char));
while (count <= MAX_LINE && fgets(cpy, MAX_LENGTH, stdin)){
int str_len = strlen(cpy);
cpy[--str_len] = '\0';
inputarray[count++] = reverse(cpy, str_len);
}
printOutput(inputarray, count);
return 0;
}
一直試圖調試爲3小時以上現在沒有用。幫助任何人?
什麼是MAX_LENGTH?你在爲此付出什麼?你能顯示輸入的第一個MAX_LENGTH + 1個字符嗎? – Kalle
[mcve]是必需的。 –
你能展示什麼是逆向功能嗎?其他一些注意事項:1)不要投入calloc的返回(使用c時)。它可以掩蓋重要的警告,並且沒有必要2)fgets將已經null結束字符串,但它看起來像是截斷了輸入的最後一個字符,這是故意的嗎? –