J'explique mon cas :
Soit ceci :
 
Code :
 - struct etud {
 - 	char *nom;
 - 	int nbCote;
 - 	int *pCote;
 - } ;
 - typedef struct etud Etud;
 - typedef struct etud *p_Etud;
 
  | 
 
J'alloue dynamiquement cette structure :
 
Code :
 - p_Etud ptstruct;
 - scanf ("%d",&nb_etud);
 - ptstruct = (Etud *) calloc (nb_etud, sizeof (Etud));
 
  | 
 
ensuite :
 
Code :
 - scanf ("%d",ptstruct[i].nbCote);
 - ptstruct[i].pCote = (int*) calloc (ptstruct[i].nbCote, sizeof (int));
 
  | 
 
Et lorsque je veux remplir ce tableau avec ça :
 
Code :
 - for (int j=0;j<ptstruct[i].nbCote;j++)
 -   {
 -   	printf ("Cote %d : ",j+1);
 -   	scanf ("%d",ptstruct[i].pCote[j]);
 -   	printf ("%d\n",ptstruct[i].pCote[j]);
 -   }
 
  | 
 
Y a un bleme avec l'initialisation
Donc si je veux 5 * pCote, et que je les initialise avec  
1,2,3,4,5 ben quand je les imprimerai ça donnera :
1,4,9,13,17 soit  
(ptstruct+i)->pCote+sizeof(j));
 
C'est clair nan  ? 
  
Une solution ?
ça doit être une bete erreur mais bon...
 
Message édité par koude le 21-09-2003 à 17:28:21