我的代碼創建了一個由3個字符串組成的數組,並嘗試使用getline()填充每個字符串。它還打印每次得到的字符串:在循環中使用getline()時的分段錯誤
int i;
size_t n = 100;
char (*words[3])[100];
for (i = 0; i < 3; i++)
{
getline(&words[i], &n, stdin);
printf("%s\n",words[i]);
}
當我輸入下面的命令行的第三個字符串我得到一個分段錯誤。
更重要的是,如果我用5替換3,則在輸入第一個字符串時出現分段錯誤。
所以1)我怎樣才能讓程序存儲所有3或5或任何字符串我給它?和
2)爲什麼如果我替換3與5我得到第一個字符串的錯誤?
您在words'的'的聲明,具有'*'其中意味着有一個或多個指針參與,但你沒有把它們指向任何東西。 –
我認爲這可能實際上也被解釋爲一個函數指針。 – SenselessCoder
@ n.m。如果指針初始化爲NULL,'getline'將執行此操作。 – mch