使用memset将结构数组及其成员初始化为零

时间:2017-05-24 05:18:58

标签: arrays struct memset

我创建了结构数组及其成员,如

struct hostDB {
    u_int8_t        host_id;
    u_int8_t        host_mac[ETHER_ADDR_LEN];
    unsigned char   mdvalue[1024];
    unsigned char   password[50];
};
struct hostDB structhostdb[1024];

我需要使结构数组及其成员初始化为零。我试过这个命令,但它不起作用, memset(structhostdb,0,1024);& memset(structhostdb,0,sizeof(structhostdb));请帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

他们是一个小问题,应该是这样的: -

memset(structhostdb,0,sizeof(struct hostDB)*1024);

sizeof->函数需要结构的类型而不是结构的对象,所以它不会是" structhostdb"但将是" struct hostDB"。

为了避免混淆,给结构定义和结构声明赋予不同的名称。