Programmation en C – Tableau de pointeurs

Avant de commencer, considérons l’exemple suivant, qui utilise un tableau de 4 entiers :

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

   int  tab[] = {20, 200, 2000};
   int i;
 
   for (i = 0; i < MAX; i++) {
      printf("Valeur de tab[%d] = %dn", i, tab[i] );
   }
   
   return 0;
}

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

Valeur de tab[0] = 20
Valeur de tab[1] = 200
Valeur de tab[2] = 2000
Valeur de tab[3] = 3

 

 

Il peut y avoir une situation où nous voulons maintenir un tableau, qui peut stocker des pointeurs vers un entier ou un caractère ou tout autre type de données. Voici la déclaration d’un tableau de pointeurs à un nombre entier

int *ptab[MAX];

Ici, on déclare ptab comme un tableau de pointeurs de MAX entiers. Ainsi, chaque élément dans ptab, contient un pointeur sur une valeur int. L’exemple suivant utilise quatre entiers, qui sont stockés dans un tableau de pointeurs, comme suit

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

   int  tab[] = {20, 200, 2000};
   int i, *ptab[MAX];
 
   for ( i = 0; i < MAX; i++) {
      ptab[i] = &tab[i]; /*  affecte l'adresse de l'entier. */
   }
   
   for ( i = 0; i < MAX; i++) {
      printf("Valeur de tab[%d] = %dn", i, *ptab[i] );
   }
   
   return 0;
}

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

Valeur de tab[0] = 20
Valeur de tab[1] = 200
Valeur de tab[2] = 2000

Vous pouvez également utiliser un tableau de pointeurs sur des caractères pour stocker une liste de chaînes de caractères comme suit :

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

   char *langages[] = {
      "Java",
      "C++",
      "Matlab",
      "Python"
   };
   
   int i = 0;

   for ( i = 0; i < MAX; i++) {
      printf("Valeur de langages[%d] = %sn", i, langages[i] );
   }
   
   return 0;
}

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

Valeur de langages[0] = Java
Valeur de langages[1] = C++
Valeur de langages[2] = Matlab
Valeur de langages[3] = Python

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.