代码示例:

#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

 

posted on 2025-02-28 10:53  轩~邈  阅读(9)  评论(0)    收藏  举报