请教怎么获得char*的长度

leeshohwa 2014-07-30 11:54:57
char* data="12345";
strlen函数可以正确取到长度6,但如果data里存放的是二进制图像,应该用哪个函数取长度?sizeof(data)只能得到指针长度4
...全文
18112 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZQWFD1984 2016-06-22
  • 打赏
  • 举报
回复
引用 6 楼 zcdabing 的回复:
strlen函数可以正确取到长度6
还以为我他么又记错了,楼主确定没搞错?5才对啊

图像相关opencv比较强大


应该是5的。楼主误人子弟啊
zcdabing 2014-07-31
  • 打赏
  • 举报
回复
strlen函数可以正确取到长度6 还以为我他么又记错了,楼主确定没搞错?5才对啊 图像相关opencv比较强大
帅得不敢出门 2014-07-31
  • 打赏
  • 举报
回复
单用char*不能。 它的'\0'结尾的性质,限定了二进制。 用其他方法吧。 自己记录size
baichi4141 2014-07-31
  • 打赏
  • 举报
回复
如果里面的数据遵循某种格式,那就可以针对相应的格式来分析,例如楼主所说的strlen,就是针对C风格字符串以0结尾的格式 如果里面的数据没有这类标明大小的格式,那么不可能获取到可用数据大小
勤奋的小游侠 2014-07-31
  • 打赏
  • 举报
回复
二进制图像数值有可能是0,是没有办法计算它的长度
mujiok2003 2014-07-31
  • 打赏
  • 举报
回复
c++中使用std::vector<char>::size()
threenewbee 2014-07-31
  • 打赏
  • 举报
回复
没办法获取,需要另一个参数指定。 之所以字符串可以得到长度,是因为有一个约定,字符串以'\0'结尾,'\0'不作为字符串构成元素。
hokuhouhi 2014-07-31
  • 打赏
  • 举报
回复 2
直接写呗~~ while(*p++)count++;
u012997273 2014-07-31
  • 打赏
  • 举报
回复
如果是bmp图像,可以根据bmp图像的结构,获取图像数据的大小 同样,如果是别的格式的图像,也可以根据图像的格式,获取图像数据的大小 单纯的一个char*指针,是无法获取数据大小的

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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