Pascal - Matriz de punteros
Pascal permite definir una matriz de punteros. Puede haber una situación en la que queramos mantener una matriz que pueda almacenar punteros a números enteros o caracteres o cualquier otro tipo de datos disponible. A continuación se muestra la declaración de una matriz de punteros a un número entero:
type
iptr = ^integer;
var
parray: array [1..MAX] of iptr;
Esto declara parray como una matriz de MAX punteros enteros. Por lo tanto, cada elemento de parray ahora tiene un puntero a un valor entero. El siguiente ejemplo utiliza tres números enteros, que se almacenarán en una matriz de punteros de la siguiente manera:
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.
También puede usar una matriz de punteros a variables de cadena para almacenar una lista de cadenas de la siguiente manera:
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.
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Value of names[1] = Zara Ali
Value of names[2] = Hina Ali
Value of names[3] = Nuha Ali
Value of names[4] = Sara Ali