我有这些结构定义
typedef struct my_s {
int x;
int y;
} my_T;
typedef struct your_s {
my_T * x;
} your_T;
your_T array[MAX_COL][MAX_ROW];
要将数组的指针初始化为NULL,我可以这样做:
memset (array, 0, sizeof(array))
这对我来说不合适。
答案 0 :(得分:3)
最简单的是
your_T array[MAX_COL][MAX_ROW] = {{{0}}};
答案 1 :(得分:1)
typedef struct my_s {
int x;
int y;
} my_T;
typedef struct your_s {
my_T * x;
} your_T;
your_T array[MAX_COL][MAX_ROW];
您无法使用memset将your_T的指针初始化为null,因为未指定空指针的位模式全部由空位组成。但你可以这样创建你的数组:
your_T array[MAX_COL][MAX_ROW] = {{}};
元素将被默认初始化,这意味着指针指针将包含空指针值。如果您的阵列是全局的,您甚至不需要关心。那将默认发生。