Am 2017-04-04 um 15:40 schrieb Ryan Joseph: > I’m glad I asked because of arrays of pointers is bad news for performance.
I don't think that you will notice a performance issue with dynamic arrays (though it highly depends on the sizes and levels you use...) > Does SetLength on a single level dynamic array not even allocate a continuous block of memory? Yes, it does (as explained in all the other mails). A (dynamic) array of integer will be allocated as a single block by SetLength. So if you only have one level of a dynamic array as in var MyArray : array of integer; then SetLength(MyArray,1000) will allocate a single block of 1000 integers. But with var MyArray : array of array of integer; SetLength(MyArray,1000); will allocate a single block of 1000 pointers (to an array of integer each). Then, SetLength(MyArray[0],1000) will allocate one (!) block of 1000 integers. SetLength(MyArray[1],1000) will allocate another block of 1000 integers and so on.... _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal