[Back to MEMORY SWAG index] [Back to Main SWAG index] [Original]

    > I have seen posts about using Pointer Arrays instead of the standard fixed
    > Arrays.  These posts have been helpful but I think the rewriting of an example
    > problem would benefit me the best.  Please take a look at this simple example
    > code:
    >
    > Program LotsofData;
    >
    > Type LOData = Array [1..10000] of Real;
    >
    > Var Value : LOData;
    >     MaxSizeArray, I, NumElement : Integer;
    >     NewValue : Real;
    >
    > begin
    >   Write('Please input the Maximum Size of the Array: ');
    >   Readln(MaxSizeArray);
    >   For I := 1 to MaxSizeArray Do
    >     Value[I] := 0.0;
    >   Writeln('Array Initialized');
    >   Writeln;
    >   Write('Please input the Number of Array Element to Change: ');
    >   Readln(NumElement);
    >   Write('Please input the New Number For Value[',NumElement,']: ');
    >   Readln(NewValue);
    >   Value[NumElement] := NewValue;
    > end.
    >

    Response;
    1. Declare the Variable Value as LOData -
            e.g. Var Value : LOData;

    2. Read MaxSizeArray;

    3. Allocate memory For the Array by using NEW() or GETMEM()
             e.g. NEW(Value);
            or   GetMem(Value, Sizeof(Real) * MaxSizeArray);

    Getmem() is better because you can allocate just the precise amount of
    memory needed.

    4. From then on refer to your Array as Value
            e.g. Value[Element] := NewValue;

    5. When you finish, deallocate memory by
            [a] Dispose(Value) - if you used NEW() to begin with, or
            [b] FreeMem(Value, Sizeof(Real) * MaxSizeArray) - if you used
            GetMem() to begin with.

[Back to MEMORY SWAG index] [Back to Main SWAG index] [Original]