当我初始化变量的时候,我做了下面的事情。
int i = 0; char *myText = NULL;
那么,如何初始化struct sockaddr_in类型的变量呢?
struct sockaddr_in
struct sockaddr_in addr = ?;
x3naxklr1#
如果你想把声明中的所有字段都设置为零,不管结构如何,那么执行如下操作:
struct some_struct var = { 0 };
5lhxktic2#
您可以使用memset假设你想把整个addr结构变量初始化为0,你可以按如下方式来做。
memset
memset(&addr, 0, sizeof(struct sockaddr_in));
如果要使用不同的值对其进行初始化,可以参考此处的示例http://www.thegeekstuff.com/2011/12/c-socket-programming/
r55awzrz3#
您可以在类Unix操作系统上使用bzero。例如:(&addr,sizeof(结构体套接字地址));
laximzn54#
这是我倾向于做的
struct sockaddr_in addr = {.s_addr = htonl(INADDR_ANY)};
如果要重新初始化变量
struct sockaddr_in addr; addr = (struct sockaddr_in) {.s_addr = htonl(INADDR_ANY)};
这将使用Designated Initializers
4条答案
按热度按时间x3naxklr1#
如果你想把声明中的所有字段都设置为零,不管结构如何,那么执行如下操作:
5lhxktic2#
您可以使用
memset
假设你想把整个addr结构变量初始化为0,你可以按如下方式来做。
如果要使用不同的值对其进行初始化,可以参考此处的示例
http://www.thegeekstuff.com/2011/12/c-socket-programming/
r55awzrz3#
您可以在类Unix操作系统上使用bzero。例如:
(&addr,sizeof(结构体套接字地址));
laximzn54#
这是我倾向于做的
如果要重新初始化变量
这将使用Designated Initializers