The correct pendant to [...]
Edit: Deleted my code. Never mind

As you stated: You need to get a new adress every cycle.
Thats not a problem of the delphi dynamic array!
If you would do "somePchar[i]" every iteration (either in C or FPC)
it would be equally slow.

However: PChars are slow, because you need to calculate lengths
very often (for about every operation), its hard to access specific
elements (if you are using delphi) and: If you merely forget one 0 then
your array is busted and you program will go nuts.

But as far as normal arrays (not strings) are concerned:
- The point with the specific element stays.

If you need top-performance you can also iterate through a dynamic
array via pointer. Thats no drawback - while enjoying all features
(like easy resizing; it needs at least some complicated reallocation for
pure pointer-"arrays").


So to bottomline it:
There is no speed difference in accessing pointers or dynamic arrays.
someArray[i] is the very same as (somePointer+i)^