几何尺寸与公差论坛

 找回密码
 注册
查看: 982|回复: 0

【转帖】变长结构体

[复制链接]
发表于 2009-3-22 23:01:00 | 显示全部楼层 |阅读模式
变长结构体


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访问了,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_program/c++/cppsl/2008927/146223.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-5-10 10:53 , Processed in 0.107788 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表