tengo el siguiente código en un archivo de C++: advertencias¿Cómo debo inicializar correctamente una estructura C desde C++?
#include <sys/socket.h>
// ...
void someFunc() {
struct msghdr msg = {0}; // <<< Uninitialized member here
}
Cuando compilo con g++
usando -Wall -Wextra
, me sale:
error: missing initializer for member 'msghdr::msg_namelen'
...same for several other fields
Mi problema es el siguiente: No puedo inicializar explícitamente todos los campos, porque no sé qué campos existirán (multiplataforma) en un struct msghdr
. La estructura no tiene un constructor predeterminado, ya que es una estructura C Tenía la impresión de que el formulario = {0}
conducía a cero inicialización de todos los campos (lo que estaría bien para mí), pero el mensaje de error g++
sugiere que no.
¿Cuáles son mis opciones aquí?
posible duplicado de [¿Por qué el compilador lanza esta advertencia: "falta el inicializador"? ¿No se inicializó la estructura?] (Http://stackoverflow.com/questions/1538943/why-is-the-compiler-throwing-this-warning-missing-initializer-isnt-the-stru) – ergosys