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
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define METHODE1
int main (void)
{
char chaine[] = "bonjour";
size_t i = 0;
#if defined (METHODE1)
char (*liste_nom)[256] = NULL;
for (; i < 3; i++)
{
liste_nom = realloc (liste_nom, (i + 1) * sizeof *liste_nom);
strcpy (liste_nom[i], chaine);
printf ("liste_nom[%u] : %u caratères\n=> %s\n\n",
i, sizeof liste_nom[i], liste_nom[i]);
}
free (liste_nom),liste_nom = NULL;
#elif defined (METHODE2)
char **liste_nom = NULL;
for (; i < 3; i++)
{
liste_nom = realloc (liste_nom, (i + 1) * sizeof *liste_nom);
liste_nom[i] = malloc (256 * sizeof *liste_nom[i]);
strcpy (liste_nom[i], chaine);
printf ("liste_nom[%u] :\n=> taille du pointeur : %u\n=> %s\n\n",
i, sizeof liste_nom[i], liste_nom[i]);
free (liste_nom[i]),liste_nom[i] = NULL;
}
free (liste_nom),liste_nom = NULL;
#endif
getchar ();
return 0;
} |
Partager