What's the preferred way in D to implement single-allocation variable-sized arrays such as

/** Single-Allocation Array. */
struct ArrayN
{
    ubyte length;  // <= maxLength
    size room;     // allocated length
    ubyte[0] data; // `room` number of bytes follows
}

where insertion/deletion typically is done via

    ArrayN* pushBack(ArrayN*, ubyte element);
    ArrayN* popBack(ArrayN*);

which, when needed, will reallocate a new larger/smaller `ArrayN`

?

Further, what's the official name for this structure?

Reply via email to