【发布时间】:2015-09-18 22:35:02
【问题描述】:
我有一个声明如下的结构:
typedef struct jpax_egrobstr_s {
bcm_if_t egr_obj;
INT32 label;
}jpax_egrobstr_t;
#define L2_NUM_WAN_PORTS 6
#define L2_NUM_BYP_PORTS 2
#define LABEL_T_CNT 4096
有类似的定义
static jpax_egrobstr_t SW_Egrobj[(L2_NUM_WAN_PORTS + L2_NUM_BYP_PORTS)][LABEL_T_CNT];
现在我需要把这个区域全部初始化为-1,所以我选择这样做来初始化它:
#define MEM_DEFAULT 0xFFFFFFFF
memset(SW_Egrobj, MEM_DEFAULT,
(L2_NUM_WAN_PORTS + L2_NUM_BYP_PORTS) * LABEL_T_CNT);
但事实证明,它似乎并没有真正起作用,我仍然在位置 [6][0] 找到一个 0x00。为什么是这样?如果结构数组的内存不连续。CPU: PowerPC
【问题讨论】:
标签: memory initialization memset