Bonjour,
J'ai écris une petite fonction qui permet d'allouer de la memoire pour créer des tableaux
dynamique.
exemple pour un tableau de structure dynamique:
typedef struct buffer
{
int iEntier;
char * szTexte;
}BUFFER;
BUFFER * pBuffer = NULL;
int iElement = 0;
BUFFER * AllocMem(int iNbElement, BUFFER * pBuffer)
{
if(pBuffer == NULL) //Si le pointeur n'a pas encore été initialisé
{
pBuffer = (BUFFER*) malloc (sizeof (BUFFER));// on alloue de la memoire pour
// le 1er élément avec malloc.
}
else // sinon on alloue de la memoire pour les autres éléments avec realloc.
{
pBuffer = (BUFFER*) realloc (pBuffer, (iNbElement + 1) * sizeof (BUFFER));
}
return pBuffer; // et on renvoie le pointeur
}
void main()
{
pBuffer = AllocMem(iElement, pBuffer);
pBuffer[0].iEntier = 25;
pBuffer[0].szTexte = "Bonjour";
iElement++;
etc....
}
Apparement tout fonctionne correctement, evidemment j'ai pas testé tout les cas de figure
possible. C'est pourquoi je voudrais savoir si cette fonction peut être réellement utilisée sans problème.
Je voudrais aussi savoir quelle est la différence avec une liste chainé au niveau rapidité, efficacité, et utilisation.
Merci pour votre aide.
Tintin 72