C++ int一维指针数组和二维指针数组使用总结

本文介绍了在处理二维数组时,如何利用指针数组替代双指针以避免问题。通过图1和图2的示例,展示了在API_detect_Path()函数中,如何将二维数据信息存储在临时的一维指针数组tempDstBoxs,然后将其复制到dstBoxs双指针变量中,最后释放临时数组内存的过程。这个方法在传递多目标信息时特别有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 图1

说明:当我们需要二维数组作为引用参数时,这时就可以用到双指针;因为使用双指针容易出现问题,所以最好用指针数组来代替(单指针);

如图1所示,双指针保存信息是“多个目标,且每个目标包含6个参数”;用指针数组地址传参。

接下来进入 API_detect_Path() 函数,看下内部赋值操作,如图2:

 图2

  • vecDstboxs是个vector双层矢量集合,临时保存需要导入dstBoxs中的信息。
std::vector<std::vector<int> > vecDstboxs;			// 保存有效的目标对象id、置信度值、位置信息 集合
  • 第1步,创建临时的一维指针数组tempDstBoxs,大小为boxNum * g_boxNumTh 。boxNum是目标的个数,g_boxNumTh是每个目标的参数个数(这里是6);
  • 第2步,把vecDstboxs中的所有数据导入到一维指针数组tempDstBoxs中;
  • 第3步,对dstBoxs分配内存,并把一维指针数组tempDstBoxs拷贝给dstBoxs。(注意:这里的dstBoxs在这个函数中是双指针变量,所以分配内存时用的 *dstBoxs);
  • 第4步,删除创建的临时一维指针数组tempDstBoxs,释放内存;
  • 这样就对图1中的一维指针数组dstBoxs赋值了,具体读取方式见图1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值