manta7
Messages postés105Date d'inscriptionsamedi 25 janvier 2003StatutMembreDernière intervention13 décembre 2008
-
22 mai 2007 à 18:58
manta7
Messages postés105Date d'inscriptionsamedi 25 janvier 2003StatutMembreDernière intervention13 décembre 2008
-
25 mai 2007 à 16:40
Le titre est déja pas mal compliqué...
Voila je vous explique mon probleme avec une allocation simple :
J'ai la structure
struct unite {
int right, left, up, down;
}unite[4];
Je l'emploie normalement en utilisant des unite[0].right=42....
Mais j'ai eu envie de le faire dynamiquement alors j'écris
struct unite {
int right, left, up, down;
}*unite;
en allouant avec un
unite=malloc(NUNITE*sizeof(struct unite)); (NUNITE c'est une constante qui est égale a 4 pr le précédent exemple.
Et la bien entendu je tombe sur un bon vieux segfault...
Je pense que la solution est dans une allocation au cas par cas en utilisant un for de 0 à NUNITE mais je n'y suis pas parvenu non plus..
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 22 mai 2007 à 19:17
Salut,
si tu déclare unite comme un pointeur, sizeof(unite) ne representera
pas la taille de ta structure, mais la taille d'un pointeur (qui est
plus petit que ta structure).