我有这些结构定义
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))
这对我来说不合适。
最简单的是
your_T array[MAX_COL][MAX_ROW] = {{{0}}};
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 的指针初始化为空,因为没有指定空指针的位模式全部由空位组成。但是你可以像这样创建你的数组:
your_T array[MAX_COL][MAX_ROW] = {{}};
元素将被默认初始化,这意味着对于指针,该指针将包含一个空指针值。如果您的阵列是全球性的,您甚至不必关心。这将默认发生。