问题标签 [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.
c++ - C ++填充双端队列错误分配
我正在尝试收集大量随机数来进行算法分析。然后我遇到了这个我无法解释的问题。考虑以下代码:
这将导致错误的分配异常。问题是如果我使用 vector 和 reserve() 它将起作用。如果我没有正确理解,请纠正我,deque 不是那种容量更大的数据结构,因为它不像向量那样连续分配内存吗?
我在 Win8 x64、Visual Studio 2012、带有 8G RAM 的英特尔 i7 上运行它。感谢您分享您的想法
c++ - 如何在 C++ 中使用自定义消息抛出 std::bad_alloc?
由于 VS2008 类 bad_alloc 不提供带有字符串参数的构造函数。有没有可能在不覆盖这样的类的情况下创建自定义消息?
c++ - 在 C++ 程序中调试明显的内存问题
我正在使用其他人创建的程序。我在编码方面有相当多的经验,但在 C++ 编码方面没有那么多经验,所以我在这里做了很多“边做边学”。所以这个程序看起来很稳定,我开始了我的工作,主要包括对程序的小部分进行小修改。最近做了一些性能优化,看起来也很稳定,但是前两天我改了一些东西,一直在崩溃。所以我恢复了我的更改,但仍然出现崩溃。我开始使用带有激活页面堆的应用程序验证器和全局标志,并检查所有与堆相关的内容以找出导致这些问题的原因。因此,从那时起,调试器总是因“std::bad_alloc”错误而崩溃。
现在我的问题是:我可以绝对确定,启用应用程序验证程序的这个 bad_alloc 崩溃是程序内部错误的一个指标吗?使用应用程序验证程序时,程序本身会使用大量内存,大约 1-1.1gb,但不再使用了。总系统内存最多使用了 80-90%,所以我不认为有可用空间太少导致的实际分配问题。你怎么看?
c++ - std::bad_alloc 和 GSL ODE 求解器
我正在尝试使用 GSL 求解器求解(大型)ODE 系统。当我使用驱动程序方法时,我收到一条错误消息could not allocate space for gsl_interp_accel
,当我手动定义控件、错误和步进器时,我得到bad_alloc
异常,据我了解,这是由在另一种情况下导致的相同原因引起could not allocate space for gsl_interp_accel
的 - 缺少的记忆。
我已经咨询过其他bad_alloc
查询,例如这个,但我没有发现任何对我的特定案例有用的东西。此外,我尝试过其他 ODE 求解器,但它们也最终会出现内存错误。我还用 valgrind 检查了我的程序,以确保除了求解器之外的其他任何地方都没有内存错误/泄漏。
任何求解器都有“积分限制”,在我的案例中,程序在大约 10% 的上限(与下限相比很大 - 我很确定这是我得到的错误的来源 - 但我确实需要在这些特定限制之间进行整合),然后以我上面引用的例外之一终止。我尝试了各种(固定/自适应)步长,但从未达到我想要的 10% 以上。
给出异常的代码是:
因此,如果我更改final_time
为final_time/10
执行代码,但结果没有任何意义。但是,即使在求解器之后什么都不做,仍然会抛出异常could not allocate space for gsl_interp_accel
。
我试图将循环拆分为几个(许多)循环,并在其间擦除内存,但这并没有太大帮助。
如果这很重要,我使用 Ubuntu 12.10,使用 GNU 编译器和 Intel C++ Composer 编译。还在 Mac 上进行了测试(不知道是哪个版本的操作系统),结果相同。
问题是:有没有办法“欺骗”求解器并使程序正常工作?
PS:ODEint 求解器,具有更智能的获取中间结果的方法,也会引发异常。
c++ - C++ 异常:内存位置的 bad_alloc
binary.exe 中 0x7650C41F 处的未处理异常:Microsoft C++ 异常:内存位置 0x003EEE00 处的 std::bad_alloc。
我不知道我是否犯了新手错误,但每次我尝试运行下面的代码时,我都会得到上面列出的错误 - 从我可以通过各种论坛帖子和错误消息收集的内容来看,有一个问题内存分配,但就我所知。
下面列出的代码是我项目的缩短版本,因为源文件很长,实际上不需要发布。
可能还值得注意的是,我试图更改代码的第一部分(参见下面的示例),以便getDocumentRootA()
只调用一次函数,但这并没有解决问题。
c++ - STD 错误分配异常
该程序严格只读取字母,并按原样推回向量。但是,文本文件就像任何其他文本文件一样。
我遇到过这个STD bad alloc异常,如下。
请多多指教。
编辑当我拿走 keyArray 部分时,它工作正常。为什么会这样?我在这里做错了什么?
node.js - node.js 创建 bad_alloc
我正在尝试主要出于学习目的使用 node.js,但我肯定看到了我将在未来项目中使用的一些潜力。
我的问题 - 我在我的 Centos 服务器上使用 SSH 并完成了本教程:https ://www.digitalocean.com/community/articles/how-to-install-and-run-a-node-js-app -on-centos-6-4-64bit
一切都很顺利,直到“创建快速应用程序”部分。当我在命令行上键入“express hello”时,我收到此错误:
然后目录中会有一个文件(例如:core.1233),其中似乎有行话 - 但以前肯定不存在。
我还访问了http://nodejs.org网站并尝试使用那里的代码创建简单的 Web 服务器。我创建了 example.js 文件,当我输入“node example.js”时,我还得到:
……和以前一样。
我是一名程序员(通常是 PHP、MySQL 等),在服务器或命令行上工作不多——但我可以很好地“绕过”。问题是 - 除了快速的谷歌搜索告诉我之外,我不知道这意味着什么 - 与记忆有关?非常感谢任何帮助!
(另外,当我输入“node --version”时,我确实得到了 v0.10.8 版本,所以我很确定 node 安装正确。如果我创建 example.js 文件只说“console.log('test') ;",它仍然会终止并给出相同的错误。它从不输出。)
谢谢!
c++ - 使用 imwrite 在 Opencv/C++ (Windows) 中写入 ppm 文件时出现 bad_alloc 异常
我只是想将 Mat 保存为 ppm 图像。我能够读取 ppm 并将其加载到 Mat 中。导致错误的代码部分是:
它构建成功,但是在写入文件时,出现以下错误:
“HW.exe 中 0x76b2c41f 处未处理的异常:Microsoft C++ 异常:内存位置 0x0018f280 处的 std::bad_alloc ..”
知道如何解决这个问题吗?
编辑:我通过执行以下操作使其工作:
c++ - std::map 分配错误
我正面临 std::map 的问题。由于未知原因,有时插入映射会导致“错误分配”异常。
以下是我用于插入地图的功能。
有人可以告诉我如何解决这个问题吗?
注意:我无法确定重现它的步骤。
提前谢谢!
添加有关对象和地图的详细信息:
c++ - 不使用 new 的 C++ 内存分配错误
我的程序抛出大量内存分配异常时遇到问题,我很难诊断问题...我会发布代码,但我的程序非常大而且我有专有信息问题,所以我希望在不发布代码的情况下获得一些帮助。如果您打算回复某种形式的 SSCCE 评论,请立即停止阅读,为我们俩节省一些时间。在这种情况下,我无法发布简洁的代码 - 我会尽量让我的问题描述和一些具体问题尽可能简洁明了。
程序背景- 我的程序基本上是一个数据处理器。它将一堆数据表作为输入,对它们进行计算,并根据计算结果吐出新的数据表。我所有的数据结构都是用户定义的类(由 int、double 和 string 类型以及数组的向量容器组成)。在所有情况下,我都在不使用 new 和 delete 的情况下启动类变量的实例。
问题描述- 我的程序在没有警告的情况下编译,并且在较小的数据集上运行良好。但是,一旦我增加了数据集(从 20x80 数组到 400x80),我开始抛出 bad_alloc 异常(一旦我处理了前 35 个左右的条目)。大型数据集在我的 18 个模块中的 17 个中运行良好——我已经隔离了一个发生错误的函数。此函数所需的计算将导致创建大约 30,000 行数据,而我的代码中的其他函数会生成 800,000+ 行而不会发生意外。
这个模块中唯一真正独特的属性是我经常使用调整大小(每个函数调用大约 100 次),并且该函数在调整大小操作期间使用递归循环(该函数将平方英尺分配给一个租户在一个时间,然后在模拟每个租户的租约大小和持续时间后更新要分配的剩余英尺,直到分配完所有平方英尺)。此外,错误每次都发生在几乎相同的位置(但不是完全相同的位置,因为我有一个随机数生成器,它会对结果产生一些变化)。真正让我感到困惑的是,对该函数的第一次 ~34 次调用工作正常,并且 ~35 次调用不需要比前 34 次更多的内存,但是我在第 35 次调用时遇到了这些 bad_alloc 异常......
我知道没有代码很难提供帮助。请试着给我一些方向。我的具体问题如下:
如果我没有使用“new”和“delete”,并且我的所有变量都在本地函数的内部初始化,是否有可能通过重复的函数调用出现内存泄漏/分配问题?在使用“向量实例”初始化变量包括本地函数时,我可以或应该做些什么来管理内存?声明我的变量?
如果我通过堆栈执行整个程序,是否有可能我的堆栈内存不足?是否有可能我需要在堆上加载一些大型查找表(地图等),然后只在速度很重要的地方使用堆栈进行迭代?
使用与内存相关的大量调整大小是否有问题?这可能是我应该使用“new”和“delete”的一个例子吗(在很多情况下我都被警告不要使用它们,除非有非常强烈的具体理由这样做)?
[与 3 相关] 在问题函数中,我正在创建一个类变量,然后重写该变量大约 20 次(我的模型的每个“迭代”一次)。当我这样做时,我不需要上一次迭代的数据......所以我表面上可以为每次迭代创建一个变量的新实例,但我不明白这将如何帮助(因为显然我能够在前约 34 个数据切片上的一个实例上进行所有 20 次迭代)
任何想法将不胜感激。我可以尝试发布一些代码,但我已经尝试过一次,每个人似乎都被它不可编译的事实分心了。我可以发布有问题的函数,但它不会自行编译。
这是导致问题的类:
此外,这是发生递归的函数的片段