3 ms·
If I understand correctly, reading [0], in C99 (or later) you can do that with struct MyStruct foo = {}; This has the effect of initializing all members t
by MaxBarraclough 5y ago
If I understand correctly, reading [0], in C99 (or later) you can do that with
struct MyStruct foo = {};
This has the effect of initializing all members to zero (or, more precisely, the value which is the same as for objects that have static storage duration [0]).
[0] https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html
See also Stop Memsetting Structures: https://news.ycombinator.com/item?id=19766930 https://news.ycombinator.com/item?id=19766930
- Arch-TK 5y agoYou need to put something in those braces. An empty initializer list is not allowed by C99 or C11. That being said, you only need to put ONE thing in there, the rest will then be initialized as you described.
- MaxBarraclough 5y agoThanks, StackOverflow confirms you're correct. [0] That's what I get for using GCC as an approximation of the C standard. (By default, GCC permits empty initializer lists.) [0] https://stackoverflow.com/a/17589839/ https://stackoverflow.com/a/17589839/