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 :
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);
Cette bibliothèque s'utiliserait comme ça :
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);
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.
=> 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