打印

数据长度问题

[复制链接]
2428|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pttptt85|  楼主 | 2010-11-28 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我定义了一个结构
typedef struct
{
....
}ST,pST;

ST      st[] = {....};
哪我如何在函数中反映结构的长度呢?
void    function(pST  stt)
{
      unsigned char   size;

      ...........
      size = stt 的长度; 如何反映stt的长度呢?如果用sizeof,只能得到通用指针的            长度
     ..............
}

main()
{
.........
  function(st);   如何在函数里反映st的长度?
 ...

相关帖子

沙发
原野之狼| | 2010-11-28 19:22 | 只看该作者
size = sizeof(*stt);

使用特权

评论回复
板凳
ayb_ice| | 2010-11-29 08:27 | 只看该作者
size = sizeof(ST);

使用特权

评论回复
地板
pttptt85|  楼主 | 2010-11-30 17:09 | 只看该作者
上面的答复都好象有问题,我要的是结构数组的字节数,而不是单个的结构字节树.上面2个答复都是单个结构的长度

使用特权

评论回复
5
zhangf1021| | 2010-11-30 17:12 | 只看该作者
再乘个数组元素数不就好了

使用特权

评论回复
6
原野之狼| | 2010-11-30 20:38 | 只看该作者
如果从技术上处理比较困难 那么应该先考虑一下总体结构是否有问题
数组作为参数传给一个函数 传递的只是一个指针 该函数是无法知道该指针指向的实体有多大的
而要获得st的大小 直接sizeof(st)就可以了 不用拐这么多弯的

使用特权

评论回复
7
yewuyi| | 2010-11-30 21:01 | 只看该作者
同意LS,直接sizeof(st)即可。

使用特权

评论回复
8
你IT了吗| | 2010-11-30 23:54 | 只看该作者
函数内部无法知道指针指向的长度,实在需要知道,多加一个参数咯

void    function(pST  stt, unsigned int len)
{
      unsigned char   size;

      ...........
      size = len;     ..............
}

main()
{
.........
  function(st,sizeof(st));  ...

使用特权

评论回复
9
原野之狼| | 2010-12-1 00:39 | 只看该作者
第二个参数一般不会按字节算的
而是按元素个数来算

使用特权

评论回复
10
pttptt85|  楼主 | 2010-12-2 16:10 | 只看该作者
上面在函数中直接用SIZEOF(ST)得到的是通用指针的长度既3个字节.
在函数上多加一个参数倒是可行,还有其他方法没有

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

110

帖子

1

粉丝