February 11, 2007 array to pointer conversion | ||||
---|---|---|---|---|
| ||||
Hello, the following example does not compile with dmd 1.05: void main() { int* p; int[3] s; for(int i=0; i < 3; i++) s[i] = i; p = s; } bug1.d(6): Error: cannot implicitly convert expression (s) of type int[3] to int* while it seems it should according to the spec (Array Declaration). It used to work in some previous version of dmd. The following works with dmd 1.05: p = cast(int*) s; Mario |
February 11, 2007 Re: array to pointer conversion | ||||
---|---|---|---|---|
| ||||
Posted in reply to mario pernici | mario pernici wrote:
> Hello,
>
> the following example does not compile with dmd 1.05:
>
> void main()
> {
> int* p;
> int[3] s;
> for(int i=0; i < 3; i++) s[i] = i;
> p = s;
> }
>
> bug1.d(6): Error: cannot implicitly convert expression (s) of type int[3] to int*
>
> while it seems it should according to the spec (Array Declaration).
> It used to work in some previous version of dmd.
>
> The following works with dmd 1.05:
> p = cast(int*) s;
Try "p = s.ptr" The implicit conversion was made illegal a while back. You may want to submit a bug report for the docs if they don't mention this.
Sean
|
Copyright © 1999-2021 by the D Language Foundation