Pascal - Tableau de pointeurs

Pascal permet de définir un tableau de pointeurs. Il peut y avoir une situation, lorsque nous voulons maintenir un tableau, qui peut stocker des pointeurs vers des entiers ou des caractères ou tout autre type de données disponible. Voici la déclaration d'un tableau de pointeurs vers un entier -

type
   iptr = ^integer;
var
   parray: array [1..MAX] of iptr;

Cela déclare parray comme un tableau de pointeurs entiers MAX. Ainsi, chaque élément de parray contient désormais un pointeur vers une valeur entière. L'exemple suivant utilise trois entiers, qui seront stockés dans un tableau de pointeurs comme suit -

program exPointers;
const MAX = 3;
type
   iptr = ^integer;

var
   arr: array [1..MAX] of integer = (10, 100, 200);
   i: integer;
   parray: array[1..MAX] of iptr;

begin
   (* let us assign the addresses to parray *)
   for i:= 1 to MAX do
   parray[i] := @arr[i];
   
   (* let us print the values using the pointer array *)
   for i:=1 to MAX do
      writeln(' Value of arr[', i, '] = ' , parray[i]^ );
end.

Vous pouvez également utiliser un tableau de pointeurs vers des variables de chaîne pour stocker une liste de chaînes comme suit -

program exPointers;
const
   MAX = 4;
type
   sptr = ^ string;

var
   i: integer;
   names: array [1..4] of string = ('Zara Ali', 'Hina Ali', 'Nuha Ali','Sara Ali') ;
   parray: array[1..MAX] of sptr;

begin
   for i := 1 to MAX do
      parray[i] := @names[i];
   
   for i:= 1 to MAX do
      writeln('Value of names[', i, '] = ' , parray[i]^ );
end.

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

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