Unit tdaAlgo;
Type
PtrArlgo=^Sth;
Sth=Record
A:Ta;
B:Tb;
…
End;
TAlgo=ptrAlgo;
Procedure CrearAlgo(VAR A:TALGO);
Begin
A:=Nil;
End;
Procedure CargarAlgo(var A:Talgo);
Begin
NEW(A);
With A^ do
Begin
…
…
…
End;
End;
De esta se hace mas eficiente el uso de memoria, pues la asignación de memoria de esta estructura, solo se efectúa cuando se CargarAlgo(var A:algo), y no simplemente por declarar una variable A:TAlgo, en la cláusula VAR un programa que usa la unidad, que es lo que sucedería si no se usa un puntero. Esto es cierto, no? Pero… que pasa cuando…
Program UsetdaAlgo;
Uses tdaAlgo;
Type
Archivo=file of TAlgo*;
Var
Arch:Archivo;
*Porque pascal permite cualquier tipo salvo un archivo... entonces que guarda en el archivo?? Supongo que lo que lo que esta guardado en la dirección de memoria de A. Entonces que pasa?????????