On Monday, 2 February 2015 at 12:57:37 UTC, Mike Parker wrote:
On 2/2/2015 9:16 PM, 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 ?
That's looking pretty wonky. You're slicing a pointer to a
fixed-size array. Why have you declared the parameter as a
pointer? What problem are you trying to solve? It would help a
bit to see the declaration of the C function that's giving you
the array.
It looks like it's here:
https://code.google.com/p/beaengine/source/browse/trunk/beaengineSources/Includes/Routines_Disasm.c#763
However i haven't spent the time to dive in there since i'm not a
C guy at all.