Is this a bug?
John Colvin via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Apr 28 02:12:59 PDT 2014
On Monday, 28 April 2014 at 08:58:41 UTC, Andrey wrote:
> Could anyone please explain to me, why do I have error message
> on this piece of code?
>
> alias short Type1;
> alias Type1[100]* Type2; // pointer to an array
> struct Type3
> {
> Type2 f
> }
> void foo()
> {
> Type3* b;
> Type1 d;
> d = b.f[10]; // compilation error: cannot implicitly convert
> expression ((*b).f[10]) of type short[100] to short
> d = b.f[0][10]; // ok
> }
>
> Thank you in advance
not a bug.
b.f[10] is indexing the pointer to the array, not the array
itself.
b.f[0][10] is indexing the array (with the 10), but I would argue
it is better to write *(b.f)[10] so as to be clear that f is not
an array.
What is the reason you are using a pointer to a struct containing
a pointer to a static array? It's often not necessary to work
like that.
More information about the Digitalmars-d-learn
mailing list