Array Design Idea

Jb jb at nowhere.com
Mon Dec 10 11:53:52 PST 2007


"Craig Black" <cblack at ara.com> wrote in message 
news:fjk2k6$pfl$1 at digitalmars.com...

> There are three things that need to be stored for a resizable array:  the 
> pointer to the array, the size, and the capacity.  My array 
> implementation, both the size and the capacity are stored on the heap with 
> the array.  There is only one heap allocation, and the first 8 bytes are 
> reserved for the size and capacity values.  Further, there is no heap 
> allocation if the array is empty.  If the array is empty, then the pointer 
> is null, and the array is assumed to have a size and capacity of zero, so 
> there is no need to store the size or capacity of an empty array.

Thats how Delphi does dynamic arrays and strings. Well except that it has 
length & refcount rather than length & capacity. Wouldnt it break slicing 
though? You cant point halfway into an existing array and still have the 
length & capacity at -4,-8 bytes? 





More information about the Digitalmars-d mailing list