Am 2017-04-04 um 16:54 schrieb Ryan Joseph: >> 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. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal