[fpc-pascal] dynamic array contents and system.move

David Emerson dle3ab at angelbase.com
Wed Apr 28 10:10:38 CEST 2010


J├╝rgen Hestermann wrote:
> Where are "the usage, internals and purpose of dyn. arrays" documented?

I dunno. But I find them incredibly useful.

they have some quirks, and over the years I've been using dynarrays, I've 
documented these on my own computer -- I even have a dynamic array test program 
that I periodically use to test for dynarray quirks. They're weird and 
unpredictable.

However I'll take all the quirks, for the convenience of being able to call 
setlength (rather than getmem or whatever) -- and moreso, for the even larger 
convenience of automatic freeing of memory -- including automatically freeing 
embedded dynarrays and ansistrings! Those two points alone are, to me, worth 
all the quirks that I have to carefully test and document, and the occasional 
usage error (e.g. the mistake I made that caused me to start this thread). When 
I started using dynamic arrays instead of making calls to getmem/freemem, my 
main project (about 25k LOC now) became substantially simpler and easier to 
maintain.

If you're curious about some of the quirks you can look at my test program, 
which includes some notes I made to myself after running other tests.

http://david9.freepgs.com/fpc/dynamic-arrays.pas

But if you don't like them for all their quirks and impurity, then don't use 
them. I'll be the first to admit that I frequently forget aspects of how they 
work, and have to refer back to my test program.

Cheers,
David




More information about the fpc-pascal mailing list