bad-alloc相关内容
当我尝试在makePlan函数内使用costmap_2d::Costmap2DROS::getRobotPose函数时,收到bad_alloc错误。有趣的是,如果我从initialize函数内部(而不是从makePlan函数内部)调用相同的函数,则不会弹出错误。 我正在附加source代码文件中的相关函数。 #include
..
有一个名为 foo 的方法有时会返回以下错误: 在抛出 'std::bad_alloc' 实例后调用终止what(): std::bad_alloc中止 有没有办法可以使用 try-catch 块来阻止此错误终止我的程序(我想做的就是返回 -1)? 如果是,它的语法是什么? 我还能如何处理 C++ 中的 bad_alloc? 解决方案 您可以像捕获任何其他异常一样捕获它:
..
我在尝试使用 boost 托管共享内存时遇到了“bad_alloc".我已经从他们的快速指南中复制了 boost 示例,并结合了我自己的更改.我的代码在下面,我已经注释掉了示例内容并在下面写了我自己的代码.我还投入了一些调试和测试的东西. 有人有什么想法吗?非常感谢任何帮助! -M #include #include #include #include #include #inclu
..
这行代码产生如下错误 rs[se_idx][ev_idx][re_idx].trs = new re_class[report_size]; std::bad_alloc 在内存位置 0x0037c29c 我认为这与“内存不足"有关.当我减少分配的金额时,它运行良好. 我的机器上有足够的内存 (16 GB),资源监视器显示 Visual Studio 只使用了其中的一小部分.我添加
..
我正在尝试用 C++ 实现一个后缀树在向我的向量列表添加节点时,它在向树中添加第三个元素后抛出 std::bad_alloc .我不知道为什么它在第三次之后发生,你能帮我解决这个 bad_alloc 错误吗? 这是我的代码: suffix_tree.cpp #include #include #include #include #include #in
..
我正在尝试实现我自己的 Tic-Tac-Toe 游戏并制作一棵树(数据结构),其中包含所有可能的移动(用于最小-最大算法). 在函数 Add_Match() 中,我收到此运行时错误: 在抛出 'std::bad_alloc' 实例后调用终止what(): std::bad_alloc` main() 有趣的部分(int Tic-Tac-Toe.cpp): if(victory(boar
..
我正在编写一个查询处理器,它分配大量内存并尝试查找匹配的文档.每当我找到匹配项时,我都会创建一个结构来保存描述文档的两个变量并将其添加到优先级队列中.由于无法知道我会这样做多少次,我尝试使用 new 动态创建我的结构.当我从优先级队列中弹出一个结构体时,队列(STL 优先级队列实现)应该调用对象的析构函数.我的结构代码没有析构函数,所以我假设在这种情况下调用了一个默认的析构函数. 但是,我第
..
在学习了Java的基本面向对象程序设计后,我对c ++还是陌生的,因此我在处理内存释放方面遇到了困难.任务是创建一个加权有向图... 我收到错误消息:“在抛出'std :: bad_alloc'实例后调用终止当我通过代码运行某些输入时,what():std :: bad_alloc",而且我很难弄清楚是什么原因造成的. 我搜索了该错误,发现这是一个内存问题,因此我尝试遍历代码并尝试查找
..
我正在尝试读取大小约为〜1.1GB的.dat文件中包含的数据. 因为我是在16GB RAM的计算机上执行此操作,所以即使将整个文件一次读入内存也没有问题,只需处理后即可. 为此,我使用了此SO答案中的slurp函数. 问题在于代码有时(但并非总是)引发bad_alloc异常. 看着任务管理器,我发现总是至少有10GB的可用内存,所以我看不到内存会成为一个问题. 这是重现此错误的代码
..
在我的应用程序中,我想从具有 double 项的给定数据矩阵中获得左奇异矢量,这在代码中以 $ b给出$ b Eigen :: MatrixXd m; ,尺寸为 45 x 904140 。现在,我将构造函数用于Eigen库中的SVD分解,如下所示: Eigen :: BDCSVD svd(m,Eigen :: ComputeFullU | Ei
..
我的程序中存在一个相当严重的错误-偶尔调用new()会抛出bad_alloc。 从我可以在bad_alloc上找到的文档中看来,出于以下原因而被抛出: 当计算机内存不足时(这绝对不会发生,我有4GB的内存) RAM,如果使用的内存不足5MB(已在taskmanager中检查),并且在后台没有任何严重运行,则程序将抛出bad_alloc。 如果内存过于分散而无法分配新块(这不太可能
..
是否存在与内存相关且抛出bad_alloc的错误更频繁?我知道这意味着内存分配失败,但是在代码中导致此错误的最常见错误是什么? 解决方案 编辑:其他评论者指出了一些有趣的场景。为了完整起见,我将它们添加到我的响应中。 案例1:内存不足 我的理解是,只要运算符new和new []未能将内存分配给对象或变量,就会抛出bad_alloc。如果您更新了一堆对象,却忘记在它们超出范围之前
..
我正在尝试练习Stroustrup的C ++ PL4书.任务是: 使用new分配了太多的内存,导致抛出了bad_alloc.报告如何 分配了多少内存以及花费了多少时间.这样做两次: 一次不写入分配的内存,一次写入每个 元素. 以下代码不会引发std::bad_alloc异常.执行该程序后,我在终端收到消息"Killed". 也.以下代码将在约4秒钟后退出.但是,当我取消注释内存使
..
我刚刚开始使用推力,我迄今为止最大的问题之一是,似乎没有文档,有多少内存操作需要。所以我不知道为什么下面的代码是扔bad_alloc当尝试排序(排序之前,我仍然有> 50%的GPU内存可用,我有70GB的RAM可用在CPU上) - 任何人可以阐明一些光这? #include #include
..
在某些程序代码中,像这样(它是一个构造函数): MyObject(MyMesh * m,MyTexture * t,float * c = NULL,float * sr = NULL,int sh = 100){ texture = t; mesh = m; subObjects = NULL; texCoords = NULL; if(texture!= NULL){
..
我有以下问题: 在Windows机器上运行的程序(32位,3.1Gb内存,VC ++ 2008和mingw编译代码)一个 bad_alloc 异常抛出(在分配大约1.2Gb之后;当试图分配一个900万双倍的向量,即大约75Mb时抛出异常),同时还有大量的RAM至少根据任务管理器)。 在linux机器(32位,4Gb内存; 32位,2Gb内存)上运行的同一程序运行良好,峰值内存使用量约为
..
据我所知,有三个原因可以抛出std :: bad_alloc: 进程请求更多内存 地址空间太分散,无法为大块连续内存提供请求 堆管理数据结构已损坏 我们有一个运行到std :: bad_alloc的代码,但上述原因似乎都不适用。数据结构是作为顶点的std ::列表存储的图形,其中每个顶点再次存储它的边缘的std :: list,以及一些数量的连续数据。 对于小图形(
..
我需要用新的分配大块的内存。 我使用新的,因为我写一个模拟生产者一侧的二零件应用。实际的生产者代码是分配这些大块,我的代码有责任删除它们(处理后)。 有一种方法,我可以确保我的应用程序能够从堆中分配这么大量的内存?我可以将堆设置为更大的大小吗? 我的case是64块的288000字节。有时我得到12分配,其他时间我得到27分配。我得到一个std :: bad_alloc异常。
..
我尝试通过向 new [] 传递一些负参数来测试 bad_alloc 异常。当传递小的负数时,我得到了我所期望的 - bad_alloc 。但是,当传递 -1 时,我可以看到我的对象被构造了几千次(我在构造函数中打印静态计数器),应用程序以segfault结束。 new [] 将有符号整数转换为 size_t 因此 -1 是 size_t 和 -2 的最大值 maximum - 1 等等
..
我的数据集:500,000点在960维度。该文件的大小为1.9 GB(1,922,000,000字节)。 该代码适用于较小的数据集,但为此,它会在每次崩溃的同一点。以下是一个最小示例: #include template class Division_Euclidean_space {
..