Pour répondre aux deux premières question, je pensais a tord que le dernier elemment du tableau n'ayant pas était initialiser par un malloc et ne contenant rien, serais automatiquement mis a NULL, ce qui n'était pas le cas, voila maintenant j'alloue de la mémoire pour cette elemment et je le mets à NULL , et la boucle fonctionne correctement .
Pour la troisieme question voila comment je fais:
(Je poste le code pour avoir des remarques, savoir si c'est une bonne manière de faire, si je peut améliorer, bref si j'ai des critiques constructive c'est cool. Même pas peur :)
char ** get_fortune(void)
{
char **text;
FILE *file;
char line[128];
int n = 0;
# Réponses
Posté par nanard . En réponse au message valeur NULL d'un tableau de pointeur. Évalué à 1.
Pour répondre aux deux premières question, je pensais a tord que le dernier elemment du tableau n'ayant pas était initialiser par un malloc et ne contenant rien, serais automatiquement mis a NULL, ce qui n'était pas le cas, voila maintenant j'alloue de la mémoire pour cette elemment et je le mets à NULL , et la boucle fonctionne correctement .
Pour la troisieme question voila comment je fais:
(Je poste le code pour avoir des remarques, savoir si c'est une bonne manière de faire, si je peut améliorer, bref si j'ai des critiques constructive c'est cool. Même pas peur :)
char ** get_fortune(void)
{
char **text;
FILE *file;
char line[128];
int n = 0;
text = malloc(sizeof(char*));
file = popen("/usr/games/fortune", "r");
while(fgets(line, 127, file) != NULL)
{
char *ptr;
if(n != 0) {
text = realloc(text, (sizeof(char*)*(n+1))); }
ptr = strchr(line, '\n');
*ptr = '0円';
text[n] = malloc(sizeof(char*)*strlen(line)+1);
strcpy(text[n], line);
n++;
}
text = realloc(text, (sizeof(char)*(n+1)));
text[n] = NULL;
pclose(file);
return text;
}
Rapide les réponses, merci encore, j'y galère depuis hier.
Allez tous vous faire spéculer.