digitalmars.D.learn - array to pointer conversion
- mario pernici (15/15) Feb 11 2007 Hello,
- Sean Kelly (5/24) Feb 11 2007 Try "p = s.ptr" The implicit conversion was made illegal a while back.
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
Feb 11 2007
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
Feb 11 2007








Sean Kelly <sean f4.ca>