[C] Probleme Malloc et Free
Résolu
ssebounet
Messages postés
163
Statut
Membre
-
ssebounet Messages postés 163 Statut Membre -
ssebounet Messages postés 163 Statut Membre -
Bonjour à tous!!!
J'ai un petit soucis!!
je souhaiterai allouer de la memoire en C mais lorsque je la libère j'ai un souci!
je l alloue comme ca:
int len;
int i;
char *Params[20];
char *Value[20];
len = 20;
for(i = 0; i < len; i++)
{
Params[i] = (char*) malloc(len * sizeof(char) );
Value[i] = (char*) malloc(len * sizeof(char) );
memset(Params[i], 0, len);
memset(Value[i] , 0, len);
}
apres je rentre des valeurs dans ces deux tableaux de pointeurs puis je souhaite les libérer:
for(i = 0; i < len; i++)
{
free(Params[i]);
free(Value[i]);
}
Mais lorsque je passe sur free, le debugger me genere une erreur:
Debug Assertion Failed
file dbgheap.c
etc etc
enfin bon je ne comprend pas!!!
quelqu un aurait une idée???
Merci beaucoup d avance!!
Séb
J'ai un petit soucis!!
je souhaiterai allouer de la memoire en C mais lorsque je la libère j'ai un souci!
je l alloue comme ca:
int len;
int i;
char *Params[20];
char *Value[20];
len = 20;
for(i = 0; i < len; i++)
{
Params[i] = (char*) malloc(len * sizeof(char) );
Value[i] = (char*) malloc(len * sizeof(char) );
memset(Params[i], 0, len);
memset(Value[i] , 0, len);
}
apres je rentre des valeurs dans ces deux tableaux de pointeurs puis je souhaite les libérer:
for(i = 0; i < len; i++)
{
free(Params[i]);
free(Value[i]);
}
Mais lorsque je passe sur free, le debugger me genere une erreur:
Debug Assertion Failed
file dbgheap.c
etc etc
enfin bon je ne comprend pas!!!
quelqu un aurait une idée???
Merci beaucoup d avance!!
Séb
A voir également:
- [C] Probleme Malloc et Free
- Word 2013 free download - Télécharger - Traitement de texte
- Zimbra free - Guide
- Free office - Télécharger - Suite bureautique
- Sketchup free - Télécharger - 3D
- Piratage free - Accueil - Piratage
9 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est bizarre, j'ai fait ce code et ça marche!
le probleme provien peut-etre de ton traitement sur les donnees
#include <stdio.h>
#include <stdlib.h>
void main()
{
int len;
int i;
char *Params[20];
char *Value[20];
len = 20;
for(i = 0; i < len; i++)
{
Params[i] = (char*) malloc(len * sizeof(char) );
Value[i] = (char*) malloc(len * sizeof(char) );
memset(Params[i], 0, len);
memset(Value[i] , 0, len);
}
for(i = 0; i < len; i++)
scanf("%s",Params[i]);
for(i = 0; i < len; i++)
printf("%d %s\n",i,Params[i]);
for(i = 0; i < len; i++)
{
free(Params[i]);
free(Value[i]);
}
}
le probleme provien peut-etre de ton traitement sur les donnees
nan deja essayer
mais en fait j ai trouver je pense!
apres avoir fait le malloc j'assignais directement les characteres!
ex:
Params[0] = "truc";
mais en fait faut faire strcpy(Params[0], "TRUC");
et la apres ca fonctionne!!!
donc faut que je change tout mon code pour utiliser les fonctions str*.
en tout cas merci bien de votre aide!!!!
Merci d'avance
Séb
mais en fait j ai trouver je pense!
apres avoir fait le malloc j'assignais directement les characteres!
ex:
Params[0] = "truc";
mais en fait faut faire strcpy(Params[0], "TRUC");
et la apres ca fonctionne!!!
donc faut que je change tout mon code pour utiliser les fonctions str*.
en tout cas merci bien de votre aide!!!!
Merci d'avance
Séb