Re: char[] ported from C to char[0] in the D core library

2015-09-11 Thread badlink via Digitalmars-d-learn
On Wednesday, 9 September 2015 at 19:37:54 UTC, Alex Parrill wrote: It's a flexible array member [1], not a pointer. Changing it to `char*` would make it incompatible with the C functions using it. [1]: https://en.wikipedia.org/wiki/Flexible_array_member TIL a new detail about C on the D

Re: char[] ported from C to char[0] in the D core library

2015-09-09 Thread badlink via Digitalmars-d-learn
On Wednesday, 9 September 2015 at 16:59:09 UTC, Adam D. Ruppe wrote: That's typically right, but since this case does it in-place instead of pointed, the zero length array is most accurate. I didn't consider that the name is placed right after the struct. Thanks !

char[] ported from C to char[0] in the D core library

2015-09-09 Thread badlink via Digitalmars-d-learn
The struct core.sys.linux.sys.inotify.inotify_event contains the field "char[0] name" which corresponds to "char name[]" in C. Why it has been translated to "char[0]" ? For me "char*" would have been more appropriate.

Re: char[] ported from C to char[0] in the D core library

2015-09-09 Thread Adam D. Ruppe via Digitalmars-d-learn
On Wednesday, 9 September 2015 at 16:49:39 UTC, badlink wrote: The struct core.sys.linux.sys.inotify.inotify_event contains the field "char[0] name" which corresponds to "char name[]" in C. Why it has been translated to "char[0]" ? In that structure, the name is appended directly to the end

Re: char[] ported from C to char[0] in the D core library

2015-09-09 Thread Alex Parrill via Digitalmars-d-learn
On Wednesday, 9 September 2015 at 16:49:39 UTC, badlink wrote: The struct core.sys.linux.sys.inotify.inotify_event contains the field "char[0] name" which corresponds to "char name[]" in C. Why it has been translated to "char[0]" ? For me "char*" would have been more appropriate. It's a