implicite deref on array element access? (indexing)

spir denis.spir at gmail.com
Fri Feb 25 08:54:44 PST 2011


On 02/25/2011 04:43 PM, Steven Schveighoffer wrote:
> On Fri, 25 Feb 2011 10:15:52 -0500, spir <denis.spir at gmail.com> wrote:
>
>> Hello,
>>
>> I thought it worked, just like implicite deref on (struct, class) member
>> access. But I cannot have it work:
>>
>> auto a = [1,2,3];
>> auto pa = &a;
>> writeln((*pa)[2]); // ok
>> writeln(pa[2]); // segfault
>
> Because indexing a pointer like ptr[n] is the equivalent of *(ptr + n).
>
> This is how it is in C.
>
> Fun fact, you can avoid array bounds checks (if you know the index is valid) by
> doing arr.ptr[n]

All right! This is what I did not get. Thank you, Steve.
Too bad. Anyway, in the meanwhile I have opted for another approach. (FWIW, in 
Oberon implicite deref works on array indexing just like on struct [record] 
member access.)

Denis
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d-learn mailing list