问题标签 [bad-alloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
75 浏览

directsound - 偶尔新的 LPDIRECTSOUNDBUFFER8 bad_alloc

我偶尔会收到带有以下代码的“C++ 异常:内存位置的 std::bad_alloc”。

此代码在 boot/init 上调用。我可以运行应用程序 10 次,这个异常将被抛出大约 1 次。

随机性让我想到未初始化的变量。但正如您所见,代码非常简单。

有任何想法吗?

谢谢

0 投票
2 回答
1745 浏览

c++ - 如何解决似乎不太可能是内存不足问题的 bad_alloc?

我正在编写一些代码,用于在 C++ 中使用 BFS 搜索迷宫(我的主要语言是 Python,但我想稍微锻炼一下我的 C++ 大脑......),我偶然发现了这个奇怪的错误。

以下是相关的数据结构:

假设我已经有了一个void parseFile(Maze* maze, char* filename)读取迷宫文本文件的方法,存储起始和目标方块的 (row, col) 对以及对应于“可通过”的 (row, col) 对的集合在迷宫中。

还有一些其他功能:

以下是它们的实现:

该代码在 GCC 4.6.3 下编译良好:$g++ maze.cc -g -std=c++0x 但是,$./a.out smallMaze.txt产生

我已经对 Valgrind 和 GDB 进行了一些健全性检查:ValgrindConditional jump or move depends on uninitialised value(s)在开头的那一行中指出

if(passableNeighbor->cell.first == maze->goal.first

以及附近进行设置查找的线路,

if(visited.find(passableNeighbor->cell) == visited.end())

当我在 GDB 中检查这些 passableNeighbor 指针时,看起来底层的 SearchNode 对象没有正确初始化它的子单元格,并且出现了各种奇怪的值。我怀疑这与我对 C++ 如何分配对象缺乏了解有关。

所以很明显,潜在的问题是 passableNeighbor 对象以某种方式在其中包含损坏的数据。这是我如何编写 getPassableChildren() 方法的产物吗?还有其他想法吗?

我查看了 std::bad_alloc ,似乎这个异常通常与内存不足有关,但是我在 BFS 期间扩展的第一个节点上遇到了这个错误,所以我似乎极不可能达到任何内存限制。

0 投票
1 回答
609 浏览

out-of-memory - 如何模拟并获得“bad_alloc”异常?

谁能告诉我如何bad_alloc在 C++ 中模拟和产生异常?在某些地方的代码中,我正在使用new将引发bad_alloc异常的运算符。我想模拟这种情况,需要测试代码。

0 投票
3 回答
289 浏览

c++ - C++ 中的 STL 列表指针

如何通过取消引用 List 指针来访问 C++ 中的列表?

执行以下操作时出现 bad_alloc 错误:

ls是一个List*。在代码之前,我有:

我将 的值ls用作整数。我通过不同的功能传递它。现在我想将它转换回List*并取消引用它,我得到了错误

0 投票
2 回答
427 浏览

c++ - 2D vector class variable for a genetic algorithm gives a bad_alloc error

I'm writing a genetic algorithm for which I'm creating a "crossover" operator as a class object that is passed the two parent "chromosomes" Because the input and therefore the output chromosomes are variable lengths, my idea was two divide the input chromosomes and place in a sort of storage class variable, then resize the input chromosomes, and then finally refill the input chromosomes. I'm getting a bad_alloc error, however. If someone could spot my error I'd very much appreciate the help.

Thanks! My class code is below. Note that "plan_vector" is a 2d vector of int types.

0 投票
1 回答
838 浏览

sorting - cuda/thrust:尝试在 6GB 的 GPU RAM 中排序 2.8GB 的​​数据会抛出 bad_alloc

我刚刚开始使用推力,到目前为止我遇到的最大问题之一是似乎没有关于需要多少内存操作的文档。所以我不确定为什么下面的代码在尝试排序时会抛出 bad_alloc(在排序之前我仍然有超过 50% 的可用 GPU 内存,并且我在 CPU 上有 70GB 的 RAM)——任何人都可以解释一下这?

这就是我编译代码的方式

0 投票
1 回答
97 浏览

c++ - 从 .NET Web 应用程序调试 bad_alloc 异常

我正在将 Visual C++ 桌面应用程序转换为 .NET Web 应用程序。在这样做时,我试图保留最初在桌面应用程序中使用的后端 Visual C++ dll。为了从这些 dll 中删除全局变量,我遇到了 bad_alloc 异常的问题。这个异常似乎是随机出现的,我正在尝试使用许多 try/catch 在较低级别的代码中查明它。我尝试了以下方法,但运气不佳:

1) 从 Debug->Exceptions 启用 C++ 异常。(异常被捕获,但是调用堆栈在定位导致问题的变量甚至函数方面没有帮助)。2) 尝试在 DebugDiag 中为 VS 调试器 Web 服务器进程创建内存泄漏规则。(没有发现泄漏)。

跟踪此问题的任何其他策略都将非常有帮助!

0 投票
2 回答
672 浏览

c++ - std::bad_alloc ulimit

I'm working on a 32bit Ubuntu 12.04. The RAM is 7.7 GB. When I run a certain process (written in C++) and reaches 50% of RAM usage, such process throws a "std::bad_alloc". The strange thing is that heap size is unlimited (command ulimit -v returns "unlimted"). So which can be the cause?

0 投票
1 回答
1021 浏览

c++ - 为什么在尝试推送到向量时出现 std::bad_alloc 错误?

C++ 这是我的代码中引发错误的部分:

IDList 是一个向量,定义如下:

为什么那行代码不能推送我的 Token 对象?谢谢。

编辑:

当我尝试这个时:

我犯了同样的错误; 当尝试推入向量时会发生这种情况。

0 投票
2 回答
5490 浏览

c++ - 映射变得非常大后,Linux C++ 程序与 St9bad_alloc 崩溃

我正在运行一个涉及在 red hat linux 64 位上构建倒排索引的 C++ 程序。我的反转索引被定义为map<unsigned long long int, map<int,int> > invertID;并且我得到了这个错误,它随机崩溃,what(): St9bad_alloc每次崩溃都是不同的。有时,我有 100,000,000 个密钥,但它还能运行一段时间。有时,大约有 80,000,000 个键,它已经喊出了错误。

谷歌搜索,我发现这个错误可能来自new,但是看看我的代码,我没有使用任何new关键字,但是,我有这样的内存分配与 map。我继续在每次迭代中插入键/值对。try catch所以我决定用声明做一些实验。

实际上,这里是代码和输出的关键部分:

输出:

我看到当我尝试插入新密钥时,会抛出错误。然而,在我用块St9bad_alloc盖住钥匙插入部分后,我得到了更多的惊喜。try catch我做了一点回溯,结果如下:

在 #14,InvertIndexGen.cpp:174,在我上面的代码中,这是它崩溃的地方:

似乎当我调用时->second,必须创建相应地图的副本。这应该也是原因St9bad_alloc

但是在这种情况下,我可以在这里做些什么吗?毕竟,invertID.max_size()返回 18446744073709551615,而我只使用了大约 1 亿个密钥。我也从 中看到top,我的程序只使用了 10% 的内存。(我们有 128GB 内存)

我应该对这个错误采取哪些措施?我看到我的一些高级同事也在这样做,他们报告说,当他们的反转索引开始增长超过 70-80% 的内存时top,程序开始出现问题。但是我的程序只使用了 10%,那么这里发生了什么?我们可以做些什么来防止这个错误?

编辑:一些评论建议我检查一下ulimit,所以这里是: