+ -
当前位置:首页 → 问答吧 → 结构体数组长度一个疑问?

结构体数组长度一个疑问?

时间:2010-06-27

来源:互联网

#include <stdio.h>
   
  typedef struct {
        char factoryCode[4];         
        char factoryName[64];         
  }madeFactoryStru;

   madeFactoryStru *madeFactory;
main()
{
      int length;
     madeFactory=malloc(sizeof(madeFactoryStru)*3);
     length= sizeof(*madeFactory);
     printf("%d\n", length);  
}
输出的length怎么会是68,为什么不是68*3=204?

作者: 光速   发布时间: 2010-06-27

sizeof(*madeFactory)计算的应该是指针指向的第一个成员的大小

作者: qintm   发布时间: 2010-06-27

*madeFactory只是一个struct结构的大小

作者: rain_fish   发布时间: 2010-06-27

嗯,如果使用简单一点的内置数据类型你明白,那这个和那个一样。

作者: donglongchao   发布时间: 2010-06-27

既然sizeof(*madeFactory)计算的应该是指针指向的第一个成员的大小。
那如何获得数组整体的大小?

作者: 光速   发布时间: 2010-06-28

为什么总有人喜欢拿指针进行sizeof呢?

作者: 没本   发布时间: 2010-06-28