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