Chinaunix首页 | 论坛 | 博客
  • 博客访问: 225321
  • 博文数量: 43
  • 博客积分: 1503
  • 博客等级: 上尉
  • 技术积分: 967
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-20 22:33
文章分类

全部博文(43)

文章存档

2013年(6)

2012年(2)

2011年(3)

2010年(22)

2009年(9)

2008年(1)

我的朋友

分类: C/C++

2008-09-25 18:13:42

  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)新分配出来空间。
阅读(1943) | 评论(0) | 转发(1) |
0

上一篇:没有了

下一篇:数据库ORACLE修改当前会话的语言环境参数

给主人留下些什么吧!~~