// 零長數組:用於結構體的末尾,本身不佔用空間,因此對sizeof沒有影響,但有利於實現可變程度的數組
// 如果有點編譯器不支持,爲了通用型,可以換成1長數組
結構體
struct m
{
short x,max;
int data[0]
}
以上結構體在VC2010編譯器下產生如下報警:
warning C4200:使用了非標準擴展:結構/聯合中的零大小數組
改成
struct m
{
short x,max;
int data[1]
}
即可通過編譯。
使用方法
struct m *temp=(struct m*)malloc(sizeof(struct m)+100);
int i;
for(i=0;i<100;i++)
{
printf("%d -%d\n",i,temp->data[i]);
}
free(temp);