當我初始化變量時,我會在下面進行說明。如何爲struct sockaddr_in初始化變量
int i = 0;
char *myText = NULL;
然後,haw可以初始化struct sockaddr_in
類型變量嗎?
struct sockaddr_in addr = ?;
當我初始化變量時,我會在下面進行說明。如何爲struct sockaddr_in初始化變量
int i = 0;
char *myText = NULL;
然後,haw可以初始化struct sockaddr_in
類型變量嗎?
struct sockaddr_in addr = ?;
如果要在聲明中將所有字段設置爲零,則無論結構如何,
struct some_struct var = { 0 };
可以使用memset
比方說,你想整個地址結構變量初始化爲0,則可以按如下做到這一點。
memset(&addr, 0, sizeof(struct sockaddr_in));
如果你想使用你可以參考這裏的例子
您可以在類Unix操作系統中使用bzero不同的值進行初始化。例如:
bzero(& addr,sizeof(struct sockaddr_in));
這可能不適用於'sockaddr_in',但是'memset' struct's時必須小心。如果'struct'具有指針成員,那麼應該將這些成員指定爲'NULL'。 – user694733
@ user694733不需要。將指針設置爲零並設置爲「NULL」是相同的。在C中,NULL通常是一個定義爲'((void *)0)'的宏。 –
NULL被定義爲'#define NULL((char *)0)',所以上面仍然很好。 – user376507