У меня возникла проблема с получением правильных данных в содержимом char *. Я хочу читать из файла его содержимое, заполнять его буфером и уметь ссылаться на содержимое символа ** на адрес буфера. И затем получить свои данные из содержимого char * в главном ... Что я делаю неправильно до сих пор?Чтение из файла с fopen: является ли char ** корректным?
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
void load(FILE* file, char** content, size_t* length);
int main()
{
FILE* file = fopen("file.txt", "r");
char* content;
size_t length = 0;
load(file, &content, &length);
printf("%s\n", content);
printf("%lu\n", length);
}
void load(FILE* file, char** content, size_t* length)
{
char buffer[30];
fgets(buffer, 30, file);
*content = buffer;
*length = strlen(buffer);
}
Вы 'буфер [30]' разрушается при возвращении из 'нагрузки (....)' – user3159253
Вы должны выделить область, в динамически распределенной памяти (например, с помощью [malloc] (https://linux.die.net/man/3/malloc) и чтения содержимого файла в эту память – user3159253
Спасибо за разъяснение! –