我試圖從.txt文件中讀取一堆int
並將它們存儲在內存中。但是,下面的代碼中的fscanf()
行在我嘗試運行它時會導致分段錯誤。我已經確認`fopen()工作正常。任何想法我應該做什麼?謝謝你的幫助。fscanf導致段錯誤
#include <stdio.h>
#include <stdlib.h>
void load_file(FILE* file, int** p);
int main()
{
FILE* f1;
f1 = fopen("twenty-five-ints.txt", "r");
int p=0;
int* k = &p;
load_file(f1, &k);
return 0;
}
void load_file(FILE* file, int** p) {
int number = 0;
int i = 0;
while (fscanf(file, "%d", &number) != EOF) {
*(*p + i) = (int) fscanf(file, "%d", &number);
i++;
}
}
如果您確認'fopen'工作正常,爲什麼沒有任何錯誤檢查? – fuz
你有一個'int'的數組。您需要實際分配一些內存來存儲您從文件中讀取的值。 – user3386109