Ich habe ein Problem mit dem Erhalten korrekter Daten in einem char * Inhalt. Ich möchte aus der Datei ihren Inhalt lesen, meinen Puffer damit füllen und char ** Inhalt auf die Adresse des Puffers abstimmen können. Und dann bekommst du seine Daten vom char * Content im main ... Was mache ich bisher falsch?Lesen aus einer Datei mit fopen: ist ein char ** korrekt zurückgegeben?
#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);
}
Sie 'Puffer [30]' nach der Rückkehr von 'Last zerstört wird (....)' – user3159253
sollten Sie einen Bereich zuweisen in dynamisch zugewiesenen Speicher (zB mit [malloc] (https://linux.die.net/man/3/malloc) und lesen Sie den Inhalt der Datei in diesen Speicher – user3159253
Vielen Dank für die Erklärung! –