Probleme de corruption de mémoire
Résolu
Allian
-
Allian -
Allian -
A voir également:
- Probleme de corruption de mémoire
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- Nettoyer memoire iphone - Guide
- Mémoire virtuelle pour 32 go de ram - Guide
- C'est un secret bien gardé : ce réglage d'expert peut doper les performances de votre PC - Guide
4 réponses
je t'avoue ne pas bien voir où est le problème, mais fait attention au fait que pour les chaines de caractères il faut prévoir de l'espace pour le caractère "nul" de fin de chaine.
oui je sais c'est pour cela que je fais un + 1 à chaque alloc mais cela ne résout pas le problème
je pense qu'il manque un +1 pour le \0 de fin de chaine sur
char tmp[strlen(href)+strlen(huh)+ strlen(lecture->d_name)+strlen(middleLink)+strlen(lecture->d_name)+strlen(endLink)+strlen(br)];
pour etre
char tmp[strlen(href)+strlen(huh)+ strlen(lecture->d_name)+strlen(middleLink)+strlen(lecture->d_name)+strlen(endLink)+strlen(br)+1];
idem pour
listFolderDef=malloc((sizeof(bodyList)+sizeof(startLink)+sizeof(pageAppend)+1)*(sizeof(char)));
-
Grou29
http://lienssanslien.free.fr
char tmp[strlen(href)+strlen(huh)+ strlen(lecture->d_name)+strlen(middleLink)+strlen(lecture->d_name)+strlen(endLink)+strlen(br)];
pour etre
char tmp[strlen(href)+strlen(huh)+ strlen(lecture->d_name)+strlen(middleLink)+strlen(lecture->d_name)+strlen(endLink)+strlen(br)+1];
idem pour
listFolderDef=malloc((sizeof(bodyList)+sizeof(startLink)+sizeof(pageAppend)+1)*(sizeof(char)));
-
Grou29
http://lienssanslien.free.fr
slt excuse moi si je fais erreur car vu l'heure j'ai pas trop les yeux en face des trous mais ton tableau tmp n'est initialiser null part non ? tu devrai essaye de l'initialiser vu seque tu as a mettre dedans peut etre dejasa 255 pour voir si l'erreur disparait
J'ai réussi à résoudre le problème en faisant ceci
C'est donc bien la place pour le \0 qu'il manquait en plus des sizeof() à remplacer par les strlen car sinon j'avais la taille du pointeur et non pas de la chaine de caracteres
while ((lecture = readdir(rep))) { char tmp[strlen(href)+strlen(huh)+ strlen(lecture->d_name)+strlen(middleLink)+strlen(lecture->d_name)+strlen(endLink)+strlen(br)+1]; sprintf(tmp, "%s%s%s%s%s%s%s", href, huh, lecture->d_name, middleLink, lecture->d_name, endLink, br); startLink = realloc(startLink, strlen(tmp) + strlen(startLink) + 1); strcat(startLink, tmp); } closedir(rep); listFolderDef=malloc((strlen(bodyList)+strlen(startLink)+strlen(pageAppend) + 1)*(sizeof(char))); sprintf(listFolderDef,"%s%s%s",bodyList,startLink,pageAppend);
C'est donc bien la place pour le \0 qu'il manquait en plus des sizeof() à remplacer par les strlen car sinon j'avais la taille du pointeur et non pas de la chaine de caracteres