cast a C char array - offset ?
FG via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Feb 2 04:42:20 PST 2015
On 2015-02-02 at 13:16, irtcupc wrote:
> The manual section about interfacing from c states that "type[]" is inter-compatible from C to D,
>
> however, I face this strange case:
>
> - C declaration:
> char identifier[64];
>
> - D declaration:
> char[64] identifier;
>
> - the result is only correct if i slice by (- pointer size):
> char[64] fromC(char[64] * thing)
> {
> const offs = size_t.sizeof;
> return thing[-offs.sizeof .. $-offs];
> }
>
> Is this correct ?
So you have to shift the whole array right by 4 or 8 bytes? Strange.
Looks like an alignment issue. Is identifier part of a bigger structure?
More information about the Digitalmars-d-learn
mailing list