代码示例:
#include <stdio.h>
#include <malloc.h>typedef struct tagMyArray
{int iLen;int iData[0];
}MyArray;int main(void)
{int iLen = 10;int iLoop = 0;MyArray *pstMyArray = (MyArray *)malloc( sizeof(MyArray) + sizeof(int)*iLen );printf("sizeof(MyArray) = %d\n",sizeof(MyArray));printf("sizeof(MyArray) + sizeof(int)*iLen = %d\n",sizeof(MyArray)+sizeof(int)*iLen);pstMyArray->iLen = iLen;for(iLoop=0; iLoop<iLen; iLoop++){pstMyArray->iData[iLoop] = iLoop+1;printf("%d ",pstMyArray->iData[iLoop]);}free(pstMyArray);return 0;
}
执行结果:
PS D:\Code\Data Structure> .\test.exe
sizeof(MyArray) = 4
sizeof(MyArray) + sizeof(int)*iLen = 44
1 2 3 4 5 6 7 8 9 10