Bonjour a tous ,

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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
keyValues[1] : bbb
Segmentation fault
Merci d'avance pour votre aide