Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2728 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] Probleme avec un free ....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Probleme avec un free ....

n°164294
paranoidan​droid
Posté le 24-06-2002 à 00:21:15  profilanswer
 

Code :
  1. char *insert(char *table, char *rep)
  2. {
  3. char *cmdd;
  4. char *cmdf;
  5. char *cmd;
  6. char *separateur = "/";
  7. char *lResultFileName;
  8. char *searchdir;
  9. char *filename;
  10. lResultFileName = malloc(strlen(RESULT_FILE)*sizeof(char));
  11. strcpy(lResultFileName,RESULT_FILE);
  12. filename = malloc((strlen(rep)+strlen(lResultFileName))*sizeo
  13. f(char));
  14. sprintf(filename,"%s%s",rep,lResultFileName);
  15. cmdd=malloc(strlen("grep -wcdi " )*sizeof(char));
  16. cmdf=malloc(strlen(" >> " )*sizeof(char));
  17. strcpy(cmdd,"grep -wcdi " );
  18. strcpy(cmdf," >> " );
  19. searchdir = malloc((strlen(path)+strlen("*.*" ))*sizeof(char));
  20. sprintf(searchdir,"%s%s%s"," ",path,"*.*" );
  21. cmd = malloc((strlen(cmdd)+strlen(table)+strlen(searchdi
  22. r)+strlen(cmdf)+strlen(filename)+strlen(LINERETURN
  23. ))*sizeof(char));
  24. sprintf(cmd,"%s%s%s%s%s%s",cmdd,table,searchdir
  25. ,cmdf,filename,LINERETURN);
  26. free(filename); //ici
  27. free(lResultFileName);
  28. free(cmdd);
  29. free(cmdf);
  30. free(searchdir);
  31. return(cmd);
  32. }


 
 
Lors du free(filename); ça merde totalement ...
 
Debug error !
Program E:\ etc ...
DAMAGE : after normal block ( #70 ) at 0x003017B0
 
(Press retry to debug the application )
 
Abandon Retry Ignore ..


Message édité par paranoidandroid le 24-06-2002 à 00:22:09
mood
Publicité
Posté le 24-06-2002 à 00:21:15  profilanswer
 

n°164296
youdontcar​e
Posté le 24-06-2002 à 00:24:10  profilanswer
 

déjà, il manque la place pour le zéro terminateur dans tes allocs.

n°164298
paranoidan​droid
Posté le 24-06-2002 à 00:25:23  profilanswer
 

youdontcare a écrit a écrit :

déjà, il manque la place pour le zéro terminateur dans tes allocs.  




 
 ?????

n°164299
Musaran
Cerveaulté
Posté le 24-06-2002 à 00:26:21  profilanswer
 

Dans les malloc, tu oublies de faire +1 aux strlen pour tenir compte du '\0' terminal.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°164300
paranoidan​droid
Posté le 24-06-2002 à 00:27:11  profilanswer
 

musaran a écrit a écrit :

Dans les malloc, tu oublies de faire +1 aux strlen pour tenir compte du '\0' terminal.  




 
... en effet ..
 
je ne savais pas ..
 
merci

n°164327
246tNt
Resistance is futile
Posté le 24-06-2002 à 07:31:17  profilanswer
 

A mon avis ton problème vient de la ... Parce que dans les qq byte juste apres/avant tes donnée se trouvent des infos pour savoir a quoi correspond ce block. Toi tu les ecrasent du coups il se melange completement.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] Probleme avec un free ....

 

Sujets relatifs
Probleme de code !Probleme de comparaison .....
[ php - Free ] si par exemple...[Visual Basic] Problème pour faire tourner un chronomètre...
[C] Probleme de #define[SQL] Problème de TimeOut [Résolu]
[PHP] Problème de cache PHP?[C] - fonction fscanf() , probleme
[ACCESS] Problème liaison avec word.Problème de TIMEOUT
Plus de sujets relatifs à : [C] Probleme avec un free ....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR