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

null ポインタのビット パターンがすべて null ビットであるとは指定されていないため、memset を使用して your_T のポインタを null に初期化することはできません。ただし、次のように配列を作成できます。

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

要素はデフォルトで初期化されます。つまり、ポインターの場合、ポインターには null ポインター値が含まれます。配列がグローバルであれば、気にする必要さえありません。それはデフォルトで起こります。

于 2008-12-29T05:08:22.657 に答える