C语言如何获得数组的长度?

tracegame 2012-06-11 01:57:33

unsigned int unStartString[] = {0x89, 0x50, 0x4e, 0x47, 0x0d};


我想得到unStartString的长度5,如何实现?查了一下好像没有现成的函数,自己也想不出怎么得到。
...全文
16437 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
风泥 2013-09-05
  • 打赏
  • 举报
回复
sizeof只能得到类型值好不,
引用 9 楼 W170532934 的回复:
int leng = sizeof(unStartString)/sizeof(unStartString[0])
这样计算得到的leng应该是1才对
颠颠小白牙 2013-06-05
  • 打赏
  • 举报
回复
学习了。高手好多。
W170532934 2012-06-11
  • 打赏
  • 举报
回复
int leng = sizeof(unStartString)/sizeof(unStartString[0])
折剑 2012-06-11
  • 打赏
  • 举报
回复
temp = sizeof(unStartString) / sizeof(unStartString[0]);
temp = sizeof(unStartString) / sizeof(int);

可以得到unStartString的长度 为5;
yhrun 2012-06-11
  • 打赏
  • 举报
回复
这样行不行??

sizeof(unStartString)/sizeof(unsigned int)
  • 打赏
  • 举报
回复
上边最后少了半个括号,lz补上
  • 打赏
  • 举报
回复
#define dim(arr) (sizeof(arr)/sizeof(arr[0])

直接传数组名,这是编译阶段可以这么搞,运行时动态获取数组长度是不行的,一般都是加一个数组长度的参数
tracegame 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
总长度充溢单个的长度,即得数组的个数。

int len = sizeof(unStartString)/sizeof(unsigned int);
[/Quote]谢谢你,我也突然间就想到了.......分给你吧
夏天__ 2012-06-11
  • 打赏
  • 举报
回复
总长度充溢单个的长度,即得数组的个数。

int len = sizeof(unStartString)/sizeof(unsigned int);
tracegame 2012-06-11
  • 打赏
  • 举报
回复
哦,自己想到一个...........


int len = sizeof(unStartString)/sizeof(unsigned int);
qiang81020 2012-06-11
  • 打赏
  • 举报
回复
取不到,必须自己操作。。。

strlen是以0x0为结束符判断字符串长度。你的数组里如果使用了0x0的值怎么弄??

还有,最好定义unsigned char xx[4] = {0x1,0x2,0x5,0xdf};

69,372

社区成员

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

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