爲什麼fscanf在這段代碼中給我一段段錯誤?fscanf將段落讀入數組
int main(int argc, char *argv[])
{
FILE *file = fopen(argv[1], "r");
int n = atoi(argv[2]);
char *words[n]; int i=0;
while ((fscanf(file, "%s ", &words[i])) != EOF) i++;
}
爲什麼fscanf在這段代碼中給我一段段錯誤?fscanf將段落讀入數組
int main(int argc, char *argv[])
{
FILE *file = fopen(argv[1], "r");
int n = atoi(argv[2]);
char *words[n]; int i=0;
while ((fscanf(file, "%s ", &words[i])) != EOF) i++;
}
因爲您沒有爲您的單詞[i]分配內存。它們只是指向隨機存儲器地址的指針。
哦對。我需要使用'new'。對不起,我是一個新手! –
確實你應該做char'** words = new char [n] [m];',其中m是你輸入的最大長度。 – Holsety
我用'm = 20'試過並得到了'錯誤:無法在初始化中將'char(*)[20]'轉換爲'char **'。 –
你覺得'&words [i]'是什麼? – immibis