Byte 数组长度如何计算?

clwk 2019-04-25 03:34:17
如题:
0X01 0X11 0X00 0X00 0X00 0X01
一个Byte数组如上,请教一下,如何计算长度?
遇到0X00,发现就截止了。
...全文
739 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2019-04-28
  • 打赏
  • 举报
回复
引用 2 楼 636f6c696e 的回复:
看错了,数组长度都可以通过sizeof(a) / sizeof(a[0])来获取

这是求数组的长度,楼主的数据不确定正好放满数组吧
clwk 2019-04-28
  • 打赏
  • 举报
回复
好的,多谢了。
自信男孩 2019-04-28
  • 打赏
  • 举报
回复
引用 10 楼 clwk 的回复:
[quote=引用 9 楼 自信男孩 的回复:]
[quote=引用 2 楼 636f6c696e 的回复:]
看错了,数组长度都可以通过sizeof(a) / sizeof(a[0])来获取

这是求数组的长度,楼主的数据不确定正好放满数组吧[/quote]
是的,长度未知,所以需要计算。[/quote]
那就在存数据的地方顺便将长度带出来
clwk 2019-04-28
  • 打赏
  • 举报
回复
引用 9 楼 自信男孩 的回复:
[quote=引用 2 楼 636f6c696e 的回复:] 看错了,数组长度都可以通过sizeof(a) / sizeof(a[0])来获取
这是求数组的长度,楼主的数据不确定正好放满数组吧[/quote] 是的,长度未知,所以需要计算。
636f6c696e 2019-04-25
  • 打赏
  • 举报
回复
不存在的,既然你声明了byte b[10],就算你没有主动赋值了,b[6]~b[9]都是有具体数值的,而且一般为0。 如果你想获取到赋值过的长度,也有两种方法: 1. 初始化为无效值,比如0xff 2. 加一个flag字段组装成一个结构体来使用
引用 6 楼 clwk 的回复:
有个问题就是: byte b[10]; sizeof(b)/sizeof(b[0])=10; 我只想获取长度6
clwk 2019-04-25
  • 打赏
  • 举报
回复
有个问题就是: byte b[10]; sizeof(b)/sizeof(b[0])=10; 我只想获取长度6
@风轻云淡_ 2019-04-25
  • 打赏
  • 举报
回复
数组做形参的时候,要带上数组长度
636f6c696e 2019-04-25
  • 打赏
  • 举报
回复
函数传参数组退化成指针,要么用C++引用,要么在函数传参也传入数组长度
引用 3 楼 clwk 的回复:
没错,这样是可以的,但是改成如下方式,就不灵了。 void _bytelength(BYTE* bInfo) { int ilen = sizeof(bInfo) / sizeof(bInfo[0]); } 结果变成4了。
clwk 2019-04-25
  • 打赏
  • 举报
回复
没错,这样是可以的,但是改成如下方式,就不灵了。 void _bytelength(BYTE* bInfo) { int ilen = sizeof(bInfo) / sizeof(bInfo[0]); } 结果变成4了。
636f6c696e 2019-04-25
  • 打赏
  • 举报
回复
看错了,数组长度都可以通过sizeof(a) / sizeof(a[0])来获取
636f6c696e 2019-04-25
  • 打赏
  • 举报
回复
就你这样的数据规律,可以直接用strlen来获取

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧