On 05/30/2010 09:43 PM, Robert wrote:
Hi, I hope some of you D gurus can help me getting my mind setup correct
when using D arrays.

I have an array: data[1 .. 2048] of type ubyte

I'm interested in getting the addresse of the array and its data
members. So I used:

writefln("adress data[%d] = %d", 0, &data);
writefln("adress data[%d] = %d", 2047, &data[2047]);


And got:

address data[0] = 18FE50
address data[2047] = 2607FF

Which is:

0x2607ff - 0x18fe50
ans = 0x000D09AF
ans = 854447

Shouldn't these addresses have a difference of 2047 bytes? Why do I get
those strange addresses back?


&data[0] and &data are very different things, if you have a dynamic array.

Reply via email to