The first way is generally better, since it zero initializes all
members. Memsetting to 0 is not always the same as zero initializing,
particularly for floating point and pointer members, which may have 0
members. Memsetting to 0 is not always the same as zero initializing,
particularly for floating point and pointer members, which may have 0
values that aren't all bits zero.
Nope, remaining members are value-initialized, which for built-ins
means initialized to 0. You can also do:
MYSTRUCT myStruct = {};
to get the same effect.