| 12
 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