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];

要将数组的指针初始化为 NULL,我可以这样做:

memset (array, 0, sizeof(array))

这对我来说不合适。

4

2 回答 2

3

最简单的是

your_T array[MAX_COL][MAX_ROW] = {{{0}}};
于 2008-12-29T05:06:06.467 回答
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 的指针初始化为空,因为没有指定空指针的位模式全部由空位组成。但是你可以像这样创建你的数组:

your_T array[MAX_COL][MAX_ROW] = {{}};

元素将被默认初始化,这意味着对于指针,该指针将包含一个空指针值。如果您的阵列是全球性的,您甚至不必关心。这将默认发生。

于 2008-12-29T05:08:22.657 回答