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