On Friday, 4 May 2018 at 15:37:28 UTC, ag0aep6g wrote:
On Friday, 4 May 2018 at 13:02:08 UTC, NewUser wrote:
How can I use the following c structure from d.
struct Item
{
int id;
};
struct Group
{
int i;
int item_count;
struct Item items[];
};
tried defining items[] as both "Item[] items" and "Item*
items" in d, it compiles okay but gives an error when trying
to access it.
Here is the error.
object.Error@(0): Access Violation
In the C code, the elements of `items` are directly part of the
struct. There is no indirection. D doesn't have dedicated
syntax for this, but you can hint at it with a zero-sized array:
struct Group
{
int i;
int item_count;
Item[0] items;
}
Then access an item with `group.items.ptr[index]`.
Hi ag0aep6g,
Thanks a lot for that.
I should have thought of that (i would still have missed the .ptr
part), the old c syntax for the same thing used to be "Item
items[0]".
Thanks,
NewUser