To expand on bearophile's answer, a dynamic array is basically a package of two things: a length and a pointer to the contents. Each of these is 8 bytes on a 64-bit system, thus the sizeof a dynamic array is 16 bytes.

You are asking how char, wchar, and dchar correspond to integer types. That is defined here: http://dlang.org/type.html.

char  = 1 byte  (ubyte)
wchar = 2 bytes (ushort)
dchar = 4 bytes (uint)

To show this, print the sizeof an element in each of those arrays:

writeln( typeid( t ), ' ', t[0].sizeof, ' ', t.representation() ); // 1 writeln( typeid( c ), ' ', c[0].sizeof, ' ', c.representation() ); // 1 writeln( typeid( dc ), ' ', dc[0].sizeof, ' ', dc.representation() ); // 4 writeln( typeid( wc ), ' ', wc[0].sizeof, ' ', wc.representation() ); // 2

Reply via email to