Disparitions de valeurs dans un tableau dynamique
Bonjour a tous :D,
jai un ptit souci : jai cree un tableau de chaines de caracteres, je le remplis, je verifie (tout est bien dedans) mais quand je veux y acceder plus tard, y a des valeurs qui ont disparues.
Je ne comprends pas.
Voici le code avec le tableau keyValues.
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 25
|
char ** keyValues;
keyValues = (char **)malloc(record.NbKeyAtt);
printf("\n*******RELATION %s********\n",record.RelName);
//REMPLISSAGE
for(i=0;i<record.NbKeyAtt;i=i+1)
{
char temp[100];
printf("enter %s\n",record.KeyAtt[i]);
fgets(temp,sizeof temp,stdin);
clean(temp);
keyValues[i]=(char *)malloc(sizeof(temp));
strcpy(keyValues[i],temp);
free(temp);
sizeValues=sizeValues+sizeof(keyValues[i]);
}
//REMPLISSAGE CORRECT :-)
key=malloc(sizeof(char)+sizeof(record.RelName)+sizeof(char)+record.NbKeyAtt*sizeof(char)+sizeValues);
printf("keyValues[1] : %s\n",keyValues[1]);
//Il m'affiche bien la valeur :-)
strcpy(key,getEquivalent((int)sizeof (record.RelName)));
printf("keyValues[1] : %s\n",keyValues[1]);
//Il m'affiche plus rien :-( => erreur de segmentation |
voici les resultats a lexecution :
Code:
1 2 3
|
keyValues[1] : bbb
Segmentation fault |
Merci d'avance pour votre aide