¿Cómo debo inicializar correctamente una estructura C desde C ++?
Tengo el siguiente código en un archivo C ++:
#include <sys/socket.h>
// ...
void someFunc() {
struct msghdr msg = {0}; // <<< Uninitialized member here
}
Cuando compilo cong++
utilizando-Wall -Wextra
, Recibo advertencias:
error: missing initializer for member 'msghdr::msg_namelen'
...same for several other fields
Mi problema es este: no puedo inicializar explícitamente todos los campos, porque no sé qué campos existirán (multiplataforma) en unstruct msghdr
. La estructura no tiene un constructor predeterminado, ya que es una estructura C. Tenía la impresión de que el= {0}
La forma condujo a la inicialización cero de todos los campos (lo que estaría bien para mí), pero elg++
mensaje de error sugiere no.
¿Cuáles son mis opciones aquí?