问题标签 [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 回答
940 浏览

c++ - C++ std::bad_alloc 错误与 std::vector

我知道以前有人问过这个问题,但是对于提问者的代码,答案似乎过于具体。

如果这被认为是一个无用的重复问题,请随时将其删除或将其标记为重复。

据我所知,我的代码对于我想要实现的目标是正确的,即计算文本文件中指定单词的出现次数。我会很感激任何帮助,谢谢。

错误

我的 main.cpp 的一部分(导致问题)

0 投票
1 回答
346 浏览

c++ - bad_alloc exception while implementing the merge sort for larger arrays

I'm implementing the merge sort algorithm using C++. An exception(bad_alloc) is raised, while sorting larger arrays. Since i'm new to C++ i have no idea about how to get rid of this error. The answer i'm willing is not handling the exception, but the reason.

Here's my main method where i initially calls merge_sort function.

Up to 1000000 elements this works fine. I'm having the trouble when sorting the array of size 10000000.

Here's the full code for test purposes.

It's better if someone can give me the reason behind this rather than a fix. Thanks!

0 投票
2 回答
459 浏览

c++ - 如果我得到 std::bad_alloc 怎么办?

创建2d有机体类指针数组:

如果我bad_alloc想用较小的 int 值调用 init 。我必须使delete阵列失败还是可以将其运行一遍?如果是,那么我该如何删除它,我不能循环遍历整个数组应用程序,只是崩溃。

0 投票
1 回答
1823 浏览

c++ - std::bad_alloc:确定 Eigen 中的缓冲区大小

我使用 Eigen 的矩阵格式来读取之前获取的多维数据:

后来知道我的数据大小后:

PackSize可能是6e08. 为了避免在计算缓冲区大小时整数溢出,我unsigend long long以前可以(PackSize* 12*8) mod (2^32)在 win32 上寻址。然而,我想出了:Unhandled exception at 0x75362F71 in DataRead.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x004CBCF0。有人可以帮我解决这个问题吗?

0 投票
2 回答
2851 浏览

c++ - C++ 内存不足异常测试

我使用 C++ 中的数组为双端队列编写了一个程序。分配的要求之一是处理异常。

我们应该检查的异常之一是内存不足异常。

由于它是一个动态大小的队列,我有一个方法可以在数组满时将其大小加倍。像这样:

在主文件中,这个throwsbad_alloc被捕获。

我不知道如何测试这是否有效。我正在使用带有 X 代码的 Mac,并且还使用 Mac 终端来编译和测试文件。有谁知道如何测试这个异常?即在这些平台中的任何一个中设置内存限制或其他东西?或者即使我做得对与否?

编辑(更多信息):

这是我的实现doubleArray

因此,当分配新数组(原始数组大小的两倍)时,可能会出现内存不足的情况。这就是我这样做的原因:

同样,我的主要问题是我不知道如何测试它是否有效。有没有办法在终端或 X 代码中设置内存限制?

0 投票
1 回答
1094 浏览

c++ - 调用 operator= 方法时抛出 std::bad_alloc 异常 C++

我正在用 C++ 编写我的第一个类,这是一个多项式,我在执行时遇到了一个 bad_alloc 异常

我认为抛出 bad_alloc 的事实(有时进程以 -1073741819 状态终止)与内存已满这一事实无关,但更多的是与我构建班级的方式根本上错误的事实有关(和这也是我第一次使用动态内存)。任何帮助深表感谢。

0 投票
1 回答
4295 浏览

c++ - 矢量正在抛出 bad_alloc

我有以下引发std::bad_alloc异常的代码:

这段代码似乎在nlines大约 500,000(ncolumns通常小于 10)时有效,但是当我在nlines= 2,600,000 的全尺寸数据集上尝试此代码时,我得到了 bad_alloc 异常。

我有 12 GB 的内存,并且在运行程序时查看我的内存使用情况,它从 28%(启动前)上升到 42%(抛出异常时)。所以看起来我还有可用的内存。

我发现这篇文章说向量在堆上分配它们的内存。根据链接到这个 MSDN 页面的这篇文章,我可以设置我的代码可以使用的堆数量(以字节为单位)。最初,堆提交大小和堆保留大小是空白的。当我输入 2000000000 (2 GB) 的值时,我仍然遇到同样的问题。

为了让事情变得更有趣,这个 C++ 代码(不是 CLI)是使用来自 C#.NET 应用程序的互操作调用的。Heap Commit Size 和 Heap Reserve Size 的修改是在 C++ 项目中设置的。我不知道我是否还需要在 .NET 项目上设置这些,或者我将如何做到这一点。

任何建议或帮助将不胜感激。

0 投票
4 回答
752 浏览

c++ - 处理返回 std::string 的函数中的异常

如何处理std::bad_alloc此函数中的异常:

由于任何 stl 构造函数都可以 throw bad_alloc,我们必须这样做:

再次catch阻止仍然不安全。

我只是想让这个功能异常证明。

0 投票
1 回答
1211 浏览

c++ - 插入std :: unordered_map时的std :: bad_alloc?

我有时会得到以下代码的 std::bad_alloc :

它有时会在运行使用包含该行的方法的测试用例时发生,而其他时候则不会。我已将代码更改为 use m_foo[id] = bei,这导致它在一次编译中停止发生,但是当我再次重新编译时它失败了,所以我将其更改为上面的代码,但仍然失败。显然问题远不止于此。

我相当确定这不是内存不足的问题,因为我top在测试用例运行时运行了它并且它没有接近填满内存。

什么可能导致 std::bad_alloc?什么细节chashblock_extended_info可能导致这种情况?这些类型的对象被复制并在代码的其他部分中到处传递,这不会导致任何问题。

这是 的定义chash

以下是定义所需的一切block_extended_info

绕过 gdb 中的相关区域,这里是导致 bad_alloc 的最新几行:

0 投票
2 回答
99 浏览

c++ - 在这个简单的例子中安全地调用 new 的最佳方法是什么?

对于一个学校项目,我有 3 个班级:鸡蛋、巢和母鸡。我们需要使用new创建每个 in 的实例main,调用display()每个,然后显式删除每个。这很容易。

我的问题是不知道如何正确捕捉bad_alloc; 应该在任何new调用上抛出 1。

现在,它看起来像这样:

我想过将整个块从第一个new到最后一个块包装delete在一个try块中,然后只捕获 abad_alloc并调用delete每个实例,但后来我想到了以下场景:

  • egg已成功创建
  • nest失败,并抛出一个bad_alloc

如果此时我对所有 3 个都调用 delete,hen应该抛出另一个异常,因为它从来没有被分配过,所以它不能被释放。

我知道理想情况下,您不会new像这样在公开场合使用,但是处理这种情况的最佳方法是什么?是不是太琐碎太做作而不能妥善处理?