【发布时间】:2011-03-24 07:11:14
【问题描述】:
gcc 4.4.4 c89
我有以下结构。
struct device_sys
{
char device[STRING_SIZE];
int id;
char category;
};
int main(void)
{
struct device_sys dev_sys[NUM_DEVICES];
memset(dev_sys, 0, (size_t)NUM_DEVICES * sizeof(dev_sys));
return 0;
}
当我调用 memset 时,我得到一个堆栈转储。这不是初始化结构体数组的正确方法吗?
【问题讨论】:
-
如果你 typedef struct device_sys 到 dev_sys,你可以保留你提到的 memset。 typedef struct device_sys dev_sys; memset(dev_sys, 0, NUM_DEVICES * sizeof(dev_sys));