nassim1987
Messages postés105Date d'inscriptionmercredi 25 novembre 2009StatutMembreDernière intervention27 janvier 2014
-
7 oct. 2010 à 17:05
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
8 oct. 2010 à 08:24
Bonjour,
je programme en c,et je voudrais avoir une structure de donnée avec pour chaque enregistrement un nombre nombre d'attribut variable et non fixé à la déclaration de la structure par exemple:
typedef struct{
type_attibut1 attribut1 ;
type_attibut2 attribut2;
type_attibut3 attribut3;
.
.
.
.
type_attributN attributN; } nom_structure ;
Voila je voudrais savoir comment faire pour déclarer cette structure avec N qui n'est pas une constante mais une variable puis comment lire et ecrire dans cette structure
Si tu utilises:
BNVAR vr;
La structure est figée et sizeof(vr) = 16, hors de question d'allonger tab[].
Par contre:
LPBNVAR pvr;
err = MaFunc(LPBNVAR *pvr);
En ce cas MaFunc() fait l'alloc nécessaire pour n elems, faisons 4 on aura donc 16 + 12:
LPBNVAR p = (LPBNVAR) VirtualAlloc(0, 28, MEMDISPO, PAGE_READWRITE);
p->count = 4;
*pvr = p;
Ainsi appelant peut utiliser tab[0 - count-1].
Mettre un coup de VirtualFree() pour finir.
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 7 oct. 2010 à 21:02
@BruNews : si je ne m'abuse, ceci ne semble affecter que la taille d'un des membres (le tableau), pas le nombre de membres présents dans la structure, c'est bien ça ?
nassim1987
Messages postés105Date d'inscriptionmercredi 25 novembre 2009StatutMembreDernière intervention27 janvier 20141 7 oct. 2010 à 23:20
re salut,
je sais pas si vous avez compris mais je parle du nombre s'attribue à initialisation,en plus les attributs sont tous de même type(des doubles),je voudrais décider seulement au début à la déclaration, mais aprés tt mes enregistrement auront la méme taille