Bonjour,
J'ai un projet de communication entre une interface, un administrateur et plusieurs machines a effectuer.
Deux soucis se présentent.
D'abord quand je compile, le warning suivant :
"warning: comparison between pointer and integer"
Qui se dirige vers la bout de code suivant :
C'est un bout d'une fonction fournie par les profs, et je n'en comprends pas tous les éléments !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 while((entree = readdir(rep)) != NULL) //Tant qu'il reste quelque chose a lire { if (strncmp(entree->d_name, ".", 1) == 0) continue; if (entree->d_name == DT_REG || entree->d_type == DT_DIR) // Ne lire que les fichiers et les repertoires { *length = *length + strlen(entree->d_name) +1; // Modifie la taille des donnees newcontenu = realloc(contenu, *length); //Reallocation memoire if (newcontenu == NULL) { perror("realloc"); // Si erreur dans realloc *length = 0; return NULL; } char *retval; retval = NULL; contenu = newcontenu; strncat(contenu, entree->d_name, NAME_MAX); // Ajoute le nom strcat(retval,"\n"); // Ajoute le retour a la ligne } }
Deuxieme souci, j'ai un superbe sgmentation fault qui me poursuit des que j'execute mon programme.
J'ai beau rajouter des malloc partout ou j'avais pu les oublier, il persiste !
J'espere que ce probleme est lié au premier, et que vous pourrez m'aider !
Merci beaucoup !
Partager