Bonjour,
J'aimerai faire un tableau de structure dynamique mais je galère.
Pour un tableau de int dynamique c'est bon. ex :
int * pTabInt;
int * tmp = NULL;
int iIndex;
for(iIndex = 0; iIndex < 15; iIndex++)
{
if(iIndex == 0)
{
pTabInt = (int*) malloc (sizeof (int));
if(pTabInt == NULL)
{
printf("Echec lors de l'allocation de mémoire ! (malloc)\n");
}
*(pTabInt + iIndex) = iIndex+ 2; // par exemple
}
else
{
tmp = (int*) realloc (pTabInt, (sizeof (int)));
if(tmp == NULL)
{
printf("Echec lors de l'allocation de mémoire ! (realloc)\n");
}
pTabInt= tmp;
*(pTabInt + iIndex) = iIndex + 2;
int * tmp = NULL;
}
}
J'accède ensuite aux éléments du tableau comme ça. ex :
*(pTabInt + 5) ;
Par contre si je veux faire pareil avec une structure genre :
struct Buffer
{
int iEntier;
float fFlottant;
double dDouble;
};
struct Buffer * pTabStrc;
struct Buffer * tmp = NULL;
for(iIndex = 0; iIndex < 15; iIndex++)
{
if(iIndex == 0)
{
pTabStrc = (struct Buffer*) malloc (sizeof (struct Buffer));
if(pTabStrc == NULL)
{
printf("Echec lors de l'allocation de mémoire ! (malloc)\n");
}
*(pTabStrc + iIndex).iEntier = iIndex+ 2;
}
else
{
tmp = (struct Buffer*) realloc (pTabStrc, (sizeof (struct Buffer)));
if(tmp == NULL)
{
printf("Echec lors de l'allocation de mémoire ! (realloc)\n");
}
pTabStrc= tmp;
*(pTabStrc + iIndex).iEntier = iIndex + 2;
int * tmp = NULL;
}
}
*(pTabStrc + 5) .iEntier;
Là, le compilo me dit que j'essaie d'accéder à une valeur qui n'est pas une sructure ou qq chose comme ça.
Bref, est ce que qqu'un pourrait me dire si il est possible de faire ce genre de tableau, et si
oui, quelle est la bonne syntaxe ?
Note: Je ne veux pas faire de liste chainée, je préférerai le principe du tableau dynamique.
Tintin 72