std::bad_alloc при использовании библиотеки облака точек

#c #point-cloud-library

Вопрос:

код библиотеки облака точек версии 1.11.1, приведенный ниже, был написан в соответствии с некоторыми учебными пособиями. он успешно построен,но разбился после запуска. при отладке в

 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;
}
 

введите описание изображения здесь

Ответ №1:

Вы используете выпускную версию библиотеки pcl_visualization в конфигурации «отладка» (видно на скриншотах стека вызовов). Попробуйте связать отладочный (pcl_visualizationd.dll)