几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   vc编程 (http://www.dimcax.com/hust/forumdisplay.php?f=76)
-   -   【转帖】变长结构体 (http://www.dimcax.com/hust/showthread.php?t=2630)

huangyhg 2009-03-22 11:01 PM

【转帖】变长结构体
 
变长结构体


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)新分配出来空间。

文章出处:http://www.diybl.com/course/3_progr...927/146223.html


所有的时间均为北京时间。 现在的时间是 07:37 PM.