如何初始化结构sockaddr_in的变量

xtfmy6hx  于 2022-12-03  发布在  其他
关注(0)|答案(4)|浏览(258)

当我初始化变量的时候,我做了下面的事情。

int i = 0;
char *myText = NULL;

那么,如何初始化struct sockaddr_in类型的变量呢?

struct sockaddr_in addr = ?;
x3naxklr

x3naxklr1#

如果你想把声明中的所有字段都设置为零,不管结构如何,那么执行如下操作:

struct some_struct var = { 0 };
5lhxktic

5lhxktic2#

您可以使用memset
假设你想把整个addr结构变量初始化为0,你可以按如下方式来做。

memset(&addr, 0, sizeof(struct sockaddr_in));

如果要使用不同的值对其进行初始化,可以参考此处的示例
http://www.thegeekstuff.com/2011/12/c-socket-programming/

r55awzrz

r55awzrz3#

您可以在类Unix操作系统上使用bzero。例如:
(&addr,sizeof(结构体套接字地址));

laximzn5

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

相关问题