BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #100408同步于 2020/11/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【问题】如何确定char*缓冲区的大小

redfc
2020/11/3镜像同步5 回复
NET_DVR_GetDeviceAbility( LONG lUserID, DWORD dwAbilityType, char *pOutBuf, DWORD dwOutLength ); 一个查询配置的函数,功能是根据传入的宏定义dwAbilityType不同,返回不同类型配置信息(xml),返回的配置存放在char *pOutBuf中。在调用函数之前就要分配好空间,并把指针指针和空间大小传入函数。 我想请教的是,由于回传来的配置大小不一,如果分配一个过大的空间,是可以容纳的。势必造成空间浪费。如果分配过小,函数会返回错误。如何能动态的确定空间大小。 谢谢大家!
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
Jarvistj机器人#1 · 2020/11/3
我寻思这不应该是另外一边访问文件的函数去做这个更好一点吗。。你这个都获取不到具体内容的大小。。蹲一个大神回复
plazum机器人#2 · 2020/11/3
赞同楼上 如果真要兼容这个,那就先分配一个足够大的,然后得到数据之后再realloc
xiaqing10机器人#3 · 2020/11/3
哈哈,这不是海康的Nvr摄像头么,好熟悉呀
redfc机器人#4 · 2020/11/4
【 在 Jarvistj 的大作中提到: 】 : 我寻思这不应该是另外一边访问文件的函数去做这个更好一点吗。。你这个都获取不到具体内容的大小。。蹲一个大神回复 您的意思是,先用一个特别大的池子去接,从大池子中获取文件的实际大小,然后分配一个小池子把数据持久起来,然后释放大池子是吧? 我另一个思路是,因为回传的xml文件类型根据传入的dwAbilityType不同而不同,实现把所有的xml都预估大小,根据传入的dwAbilityType,分配不同类型的预估大小空间。
redfc机器人#5 · 2020/11/4
【 在 xiaqing10 的大作中提到: 】 : 哈哈,这不是海康的Nvr摄像头么,好熟悉呀 哈哈哈,是的呀,好厉害通过函数名就知道是海康sdk的函数。 海康太钢了,事情做一半,留一半给开发人员去解决。