Casting gremlins

Frits van Bommel fvbommel at REMwOVExCAPSs.nl
Wed Oct 10 15:55:46 PDT 2007


Todd wrote:
> In C it was possible to cast a Uint to a Char[], however, I can't seem to get it to compile in D. 
> 
> example: I have 
> 
> uint data1;
> long data;
> long lblonedata;
> .
> .
> .
> char[] dataone = cast(char[]) data1;
> lblonedata = atoi(dataone);
> 
> I'm importing std.string, std.conv;
> 
> and get e2ir: cannot cast uint to char[]
> 
> I was using dmd 1.022 and switched to 2.x today with no help.
> Does D use a different method? or I'm I missing something obvious?

In C, an array is just a pointer. In D it also contains a length (unless 
it's a static array, in which case that's encoded in the type).
You could try casting to a pointer instead, but casting between pointer 
and non-pointer types usually means you're doing something wrong. What 
is it exactly that you're trying to achieve here?


More information about the Digitalmars-d-learn mailing list