The following
#include <net/route.h>
#include <netinet/in.h>
int main(){
struct rtentry e={};
*((struct sockaddr_in*)(&(e.rt_genmask)))=(struct sockaddr_in){.sin_family=AF_INET,.sin_port=0,.sin_addr=INADDR_ANY};
return 0;
}
gives the warning (gcc -std=c11 -Wall test.c)
test.c:5:45: warning: missing braces around initializer [-Wmissing-braces]
5 | *((struct sockaddr_in*)(&(e.rt_genmask)))=(struct sockaddr_in){.sin_family=AF_INET,.sin_port=0,.sin_addr=INADDR_ANY};
| ^
^
Why? How may I fix the code?