Я пытаюсь прочитать большой список английских слов из текстового файла в массив строк. Количество слов - 2016415, а максимальная длина слова - 69 символов.
Если я определяю массив как «char data [2016415] [70];», тогда я получаю переполнение стека при запуске программы.
Так что я пытаюсь использовать calloc () вместо этого, однако я не могу понять, как я должен привести его к типу, чтобы он стал эквивалентен "char data [2016415] [70];".
Следующая программа возвращает предупреждение "передача аргумента 1 из` fgets 'делает указатель из целого числа без приведения "во время компиляции. И когда я его выполняю, возникает проблема «Exception: STATUS_ACCESS_VIOLATION».
Вы можете мне помочь?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
char *data; //data[2016415][70];
int i;
FILE *fsol;
fsol = fopen("C:\\Downloads\\abc\\sol2.txt","r");
data = (char*) calloc(2016415,70);
for(i=0;i<2016415;i++){
fgets(data[i] , 70 , fsol);
}
fclose(fsol);
return 0;
}