Vamos2 a dit :
J'aimerais pouvoir gérer plusieurs successeurs et prédécesseurs pour cette structure si t'a une idée plus "propreé je suis preneur
Dans ce cas, il faut faire un tableau de pointeurs :
soit statique (
static
array) :
typedef struct Bloc
{
<...>
struct Bloc *sa_Suivant[NbSucc];
}
Block;
soit dynamique (
dynamic
array)
typedef struct Bloc
{
<...>
struct Bloc **da_Suivant;
int NbSucc;
}
Block;
L'allocation se fait alors ainsi (non compilé, non testé) :
Block *p = malloc (sizeof *p);
if (p != NULL)
{
int NbSucc = 10; /* arbitraire (reallocable si besoin est) */
/* allocation du tableau de pointeurs */
p->da_Suivant = malloc (sizeof *p->da_Suivant * NbSucc);
if (p->da_Suivant != NULL)
{
int i;
p->NbSucc = NbSucc;
/* initialisation du tableau de pointeurs */
for (i = 0; i < p->NbSucc;
{
p->da_Suivant[i] = NULL;
}
/* ready ... */
}