C - Tableau de pointeurs

Avant de comprendre le concept de tableaux de pointeurs, considérons l'exemple suivant, qui utilise un tableau de 3 entiers -

#include <stdio.h>
 
const int MAX = 3;
 
int main () {

   int  var[] = {10, 100, 200};
   int i;
 
   for (i = 0; i < MAX; i++) {
      printf("Value of var[%d] = %d\n", i, var[i] );
   }
   
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Il peut y avoir une situation où nous voulons maintenir un tableau, qui peut stocker des pointeurs vers un int ou un char ou tout autre type de données disponible. Voici la déclaration d'un tableau de pointeurs vers un entier -

int *ptr[MAX];

Il déclare ptrcomme un tableau de pointeurs entiers MAX. Ainsi, chaque élément de ptr contient un pointeur vers une valeur int. L'exemple suivant utilise trois entiers, qui sont stockés dans un tableau de pointeurs, comme suit -

#include <stdio.h>
 
const int MAX = 3;
 
int main () {

   int  var[] = {10, 100, 200};
   int i, *ptr[MAX];
 
   for ( i = 0; i < MAX; i++) {
      ptr[i] = &var[i]; /* assign the address of integer. */
   }
   
   for ( i = 0; i < MAX; i++) {
      printf("Value of var[%d] = %d\n", i, *ptr[i] );
   }
   
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Vous pouvez également utiliser un tableau de pointeurs vers un caractère pour stocker une liste de chaînes comme suit -

#include <stdio.h>
 
const int MAX = 4;
 
int main () {

   char *names[] = {
      "Zara Ali",
      "Hina Ali",
      "Nuha Ali",
      "Sara Ali"
   };
   
   int i = 0;

   for ( i = 0; i < MAX; i++) {
      printf("Value of names[%d] = %s\n", i, names[i] );
   }
   
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of names[0] = Zara Ali
Value of names[1] = Hina Ali
Value of names[2] = Nuha Ali
Value of names[3] = Sara Ali