Program MemDyn;
Uses
Crt;
Const
MaxElements = 10000; {Número máximo de elemntos}
Const
CountElements: Word = 0; {Número de elementos del array}
Type
MyArray = Array[1..MaxElements] of Integer; {Array de enteros...}
PMyArray = ^MyArray;
Var
Buff :PMyArray;
Count, I :Word;
{Tamaño del Array en bytes, de acuerdo a la cantidad de elementos}
Function ArraySize :LongInt;
Begin
ArraySize := CountElements*SizeOf(Buff^[1]);
End; {ArraySize}
{Vacía el Array}
Procedure FreeArray;
Begin
If (Buff<>NIL) then FreeMem(Buff, ArraySize);
End; {FreeArray}
{Crea espacio para el array}
Procedure ReSizeArray(newCount :Word);
Begin
FreeArray;
CountElements := newCount;
GetMem(Buff, ArraySize);
End; {ReSizeArray}
Begin
Buff := NIL;
ClrScr;
Write('Número de elementos: ');
ReadLn(Count);
ReSizeArray(Count);
For I := 1 to Count do
Begin
Write('[', I, ']? ');
ReadLn(Buff^[I]);
End; {For}
ClrScrr;
WriteLn('Número de elementos ingresados: ', countElements);
For I := 1 to CountElements do
WriteLn('[', I, '] ', Buff^[I]);
End. {MemDyn}