typedef struct tagTest
{
int uID;
int iNum;
int offset
int data[1]; //可變長數據,根據所需要數據類型定義
}Test;
data是一個數據,個數爲1,但是其實在使用的時候,不一定爲1,也就是說在上述結構不能
直接Test tmp;這樣聲明,必要聲明成指針,然後在malloc的時候,根據iNum數目進行申請,
譬如iNum爲5個int,這可以這樣
p = (Test *)malloc(sizeof(Test) + (iNum - 1) * sizeof(int));
這樣,後面的內容可以通過p->data[i]訪問了,p->data[0]就是我們當初定義的int data[1];其後的
p->data[1],p->data[2],p->data[3],p->data[4]就是(iNum - 1)新分配出來空間。