If the C version used a named initializer, ie (cfg = { .pem_bytes = a, .pem_buf =b };) then the compiler initializes any unnamed fields to zero.
(As Sprite notes, this style of initialization also works in C++ but only under a stricter set of conditions. "= { 0 }" is really a minimal form of this same initializer, to say "first element to 0, and all remaining elements to zero" ).