Bonjour,
Je suis entrain de me faire une petite bibliothèque qui me permet de me créer une liste d'éléments stockés en RAM
Je pensais a créer ces prototypes pour ma bibliothèque :
Cette bibliothèque s'utiliserait comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void initList(MY_LIST * list); STRUCT_ELEMENT createElement(MY_LIST * list); void addProperty(STRUCT_ELEMENT * element, char name[], int val);
La question que je me posais est quelle est la meilleure méthode pour allouer la mémoire de mes différents éléments vu que chaque élément peut avoir un nombre de "property" différentes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 MY_LIST myList; initList(&myList); STRUCT_ELEMENT * element = createElement(&myList); addProperty(element,"toto", 1); addProperty(element,"titi", 2); addProperty(element,"tutu", 3);
=> il faut créer a chaque appele de addProperty() un nouvel espace mémoire (malloc => liste chainée) attaché à l'élément ? ... ou vous voyez d'autres méthodes plus efficaces ?
=> sinon je pensais définir dans la structure STRUCT_ELEMENT un gros buffer puis le réduire une fois l'ajout des "property" terminé (afin de limiter le nombre d'appel à malloc) => mais je ne sais pas trop si c'est faisable facilement en langage C
Merci d'avance
Partager