2013-12-18 118 views

回答

4

如果要在聲明中將所有字段設置爲零,則無論結構如何,

struct some_struct var = { 0 }; 
3

可以使用memset

比方說,你想整個地址結構變量初始化爲0,則可以按如下做到這一點。

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

如果你想使用你可以參考這裏的例子

http://www.thegeekstuff.com/2011/12/c-socket-programming/

+0

這可能不適用於'sockaddr_in',但是'memset' struct's時必須小心。如果'struct'具有指針成員,那麼應該將這些成員指定爲'NULL'。 – user694733

+1

@ user694733不需要。將指針設置爲零並設置爲「NULL」是相同的。在C中,NULL通常是一個定義爲'((void *)0)'的宏。 –

+0

NULL被定義爲'#define NULL((char *)0)',所以上面仍然很好。 – user376507

0

您可以在類Unix操作系統中使用bzero不同的值進行初始化。例如:

bzero(& addr,sizeof(struct sockaddr_in));