J'ai un problème avec l'obtention de données correctes dans un contenu char *. Je veux lire à partir du fichier son contenu, remplir mon tampon avec lui, et être en mesure de déférer char ** contenu à l'adresse du tampon. Et puis obtenir ses données de contenu char * dans la principale ... Qu'est-ce que je fais mal à ce jour?Lecture d'un fichier avec fopen: un caractère ** est-il retourné correctement?
#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);
}
Vous 'tampon [30]' est détruit au retour de 'charge (....)' – user3159253
Vous devriez allouer une zone mémoire dynamiquement allouée (par exemple en utilisant [malloc] (https://linux.die.net/man/3/malloc) et lire le contenu du fichier dans cette mémoire – user3159253
Merci pour l'explication! –