Ryan Joseph wrote 7 lines
> var arr : array of array of Integer;
> begin
> SetLength(arr, 10, 10);
“then the first array stores a pointer to each sub array.”
Could you illustrate this is code?
I don’t think I’m understanding this exactly like it’s represented in memory.
There’s only one “sub array” in this 2x2 array so how does that look in memory?
Why 2x2?
SetLength(arr,10,10) creates a 10x10 array.
I am trying to show the memory allocation for the 10x10 array as a "graphic":
arr --> arr[0],arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7],arr[8],arr[9] | | | | | | | | | | V V V V V V V V V V arr[0,0], . . . . . . . arr[9,0], arr[0,1], . . . . . . . arr[9,1], arr[0,2], . . . . . . . arr[9,2], arr[0,3], arr[9,3],
arr[0,4], arr[9,4],
arr[0,5], arr[9,5],
... ...
arr is a single pointer (that points to arr[0]).
arr[0] to arr[9] are (10) pointers located in a continuous memory block each pointing to arr[0,0],
arr[1,0],
arr[3,0], and so on...
arr[0,0] is a single integer.
arr[0,0] to arr[0,9] are (10) integers located in a continuous memory block. The same applies for
arr[1,0] to arr[1,9],
arr[2,0] to arr[2,9],
arr[3,0] to arr[3,9], and so on.