二维数组索引越界

            pcl::PointCloud<PointType>::Ptr cloudCamera(new pcl::PointCloud<PointType>);
            float point_x= cloudCamera->points[point_index].x;

上述代码运行的时候报一下错误

typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const 
[with T = pcl::PointCloud<pcl::PointXYZI>;
 typename boost::detail::sp_member_access<T>::type = pcl::PointCloud<pcl::PointXYZI>*]: Assertion `px != 0' failed.

通过Debug调试软件定位,发现是point_index超出点云最大的索引了
在这里插入图片描述
后来发现问题所在:
自己定义了一个二维数组,初始化值为0,大小是图片mask的大小,里面的值代表点云的索引,即point_index

 uint32_t projectionMat[mask.rows][mask.cols] = {{0}};
 uint32_t point_index = projectionMat[v][u];

但是取值的时候忘了,其索引上界是mask.rows -1和mask.cols-1。程序里面索引到mask.rows和mask.cols时就越界了,导致值溢出。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值