繁体   English   中英

使用点云库时的 std::bad_alloc

[英]std::bad_alloc while using point cloud library

下面的点云库版本 1.11.1 代码是按照一些教程编写的。 它构建成功,但运行后崩溃。 调试时抛出 std::bad_alloc

pcl::visualization::CloudViewer viewer("name");

谁能帮助我?

#include<iostream>
#include<pcl/io/pcd_io.h>
#include<pcl/point_types.h>
#include<pcl/visualization/cloud_viewer.h>

int main()
{
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

    cloud->width = 5;
    cloud->height = 1;
    cloud->is_dense = false;
    cloud->points.resize(cloud->width * cloud->height);

    for (std::size_t i = 0; i < cloud->points.size(); i++)
    {
        cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);
        cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);
        cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);
    }

    pcl::io::savePCDFileASCII("test_pcd.pcd", *cloud);
    std::cerr << "saved" << cloud->points.size() << "data points to test_pcd.pcd" << std::endl;

    for (std::size_t i = 0; i < cloud->points.size(); i++)
        std::cerr << " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << std::endl;

    const std::string name = "nb";
    pcl::visualization::CloudViewer viewer("name");
    viewer.showCloud(cloud);
    while (!viewer.wasStopped())
    {

    }
    return 0;
}

在此处输入图像描述

您正在“调试”配置中使用 pcl_visualization 库的发布版本(从调用堆栈的屏幕截图中可以看到)。 尝试链接调试(pcl_visualizationd.dll)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM