1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include <stdio.h>
#include <stdlib.h>
#define TAB_SIZE 5
typedef struct
{
int p;
unsigned NB_SUC;
int *Tab;
} X;
int main (void)
{
X tab[TAB_SIZE] = { {0} };
int i;
int nombre;
int ret;
do
{
puts ("Entrez le nombre de point :");
ret = scanf ("%d", &nombre);
scanf ("%*[^\n]"), getchar ();/* vide le buffer d'entree */
}
while (ret != 1);
for (i = 0; i < nombre && i < TAB_SIZE; i++)
{
do
{
printf("Entrez le nombre de successeur de %d :\n",i);
ret = scanf("%u", & tab[i].NB_SUC);
scanf ("%*[^\n]"), getchar ();
}
while (ret != 1);
tab[i].Tab = calloc (tab[i].NB_SUC, sizeof *tab[i].Tab);
}
for (i = 0; i < nombre; i++)
{
printf ("tab[%d] a %d successeurs.\n", i, tab[i].NB_SUC);
}
for (i = 0; i < nombre && i < TAB_SIZE; i++)
{
free (tab[i].Tab), tab[i].Tab = NULL;/* libere la memoire */
}
} |
Partager