長(zhǎng)度為0的數(shù)組在GNU C是可以使用的,考試大首發(fā)在定義一個(gè)變長(zhǎng)對(duì)象的結(jié)構(gòu)體是非常有用的。
請(qǐng)看下例。
struct line {
int length;
char contents[0];
};
struct line *thisline = (struct line *)
malloc (sizeof (struct line) + this_length);
thisline->length = this_length;
Examda提示:顯然這樣的代碼要比下面的定義節(jié)省空間
struct line {
int length;
char *contents;
};
struct line {
int length;
char contents[1];
};
請(qǐng)看下例。
struct line {
int length;
char contents[0];
};
struct line *thisline = (struct line *)
malloc (sizeof (struct line) + this_length);
thisline->length = this_length;
Examda提示:顯然這樣的代碼要比下面的定義節(jié)省空間
struct line {
int length;
char *contents;
};
struct line {
int length;
char contents[1];
};

