Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

there's no array type in c


Yes it does. It just decays to a pointer at the slightest touch.


There are differences. E.g. va_xxx functionality may be implemented either with a pointer or an array. The difference becomes visible if you try to pass a va_list to another variadic function and then extract it later with va_arg. About half of compilers will happily do that, and another half will refuse to compile the naive version. (There's a more sophisticated proper way.)

https://stackoverflow.com/questions/79897621


[flagged]


Because doing a dance to avoid it decaying conveys better information to both the compiler and downstream users of your code.


There is a big difference between:

struct A { int size; char data[]; }

struct B { int size; char *data; }




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: