C читать файл построчно в динамический массив не удается, но со статическим массивом это работает? - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь прочитать файл построчно в этот динамический массив:

//r = rows (max. chars of one line), c = column (lines of file)
char *file_content[r];
for (int i=0; i<r; i++) {
    file_content[i] = (char*)calloc(c,sizeof(char));
}

readfile.c

void readFile(char *file_name, char **file_content) {
    char const* const fileName = file_name; 
    FILE* file = fopen(fileName, "r"); 

    int i = 0;

    while(fgets(file_content[i], 512 + 1, file)) { //512+1 for null termination
        /* get rid of ending \n from fgets */
        file_content[i][strlen(file_content[i]) - 1] = '\0';
        i++;
    }
    fclose(file);
}

Таким образом, этот код прекрасно работает со статическим массивом, таким как file_content [500] [500], но с моим динамическим массивом сверху

printf("%s", file_content[0]);

печатает случайное содержимое файла.

Я не знаю, как мне отладить мою проблему, я новичок ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...