Comparaison pointeur entier
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 :
Code:
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
}
} |
C'est un bout d'une fonction fournie par les profs, et je n'en comprends pas tous les éléments !
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 !