定義如下一個struct
struct T
{
int a;
int b[0];
int c;
};
打印各個成員的地址和大小,結果如下:
編譯環境Code::Blocks 10.05
struct T t;
printf("%p:%d\n",&(t.a),sizeof(t.a));
printf("%p:%d\n",&(t.b),sizeof(t.b));
printf("%p:%d\n",&(t.c),sizeof(t.c));
0022FF38:4
0022FF3C:0
0022FF3C:4
可見定義的空數組,是不占任何空間的。其返回的內存地址是下一個可分配的地址。