问题标签 [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.
windows - 内存分配与交换(在 Windows 下)
抱歉我的问题比较笼统,但我找不到明确的答案:
鉴于我还有空闲的交换内存,并且我以合理的块(~1MB)分配内存->内存分配仍然会因任何原因而失败吗?
c++ - “std::bad_alloc”:我使用了太多内存吗?
消息:
我查看了 gdb 回溯,这是我自己实现的最低级别的方法:
您在上面看到的 cout 语句表明它在 7000 多次迭代后终止。上述函数仅在我的应用程序快结束时调用一次。我在调用上述函数之前调用了一个非常相似的函数,这不会导致问题。
c++ - 为什么我的 WinCE 应用程序中没有 std::bad_alloc?
根据 C++ 标准,operator new应该throw std::bad_alloc();在分配失败时。
为了测试这种行为,我想出了以下代码:
问题是,出乎意料的是,nullptr每次我在 Windows Mobile 2003 (Windows CE 4.2) 上运行它时都会遇到这种情况。
编译器是 Microsoft (R) C/C++ Optimizing Compiler Version 14.00.60131 for ARM,所以我认为编译器不符合标准的情况并非如此。
我还尝试throw std::bad_alloc()在给定try的块内手动(并成功,因此该catch部分应在失败的情况下触发new)。另一件事是,set_new_handler()但这也不起作用。如果它很重要,我Big的大小为 10MB。
那么你能告诉我我错过了什么吗?为什么我得不到std::bad_alloc?
编辑1:我不是在寻找如何克服这个问题,而是因为它首先发生的原因。
编辑2:在调试过程中,我尽可能地简化了程序,new我得到的反汇编输出是:
不应该有任何系统调用吗?不应该更复杂吗?有人可以帮忙调查一下吗?
c++ - 如何处理 C++ 中的 bad_alloc?
有一个调用的方法foo有时会返回以下错误:
有没有办法可以使用try-catch块来阻止此错误终止我的程序(我想要做的就是 return -1)?
如果是这样,它的语法是什么?
bad_alloc在 C++中我还能如何处理?
c++ - 为什么 new[-1] 会产生 segfault,而 new[-2] 会抛出 bad_alloc?
我试图bad_alloc通过将一些否定参数传递给new[]. 当传递小的负数时,我得到了我所希望的 - a bad_alloc。但是,当通过时-1,我可以看到我的对象被构造了数千次(我在构造函数中打印静态计数器)并且应用程序以段错误终止。
new[]将有符号整数转换为size_t,-1的最大值size_t也是-2,maximum - 1以此类推。
那么为什么new[]在接收到一些巨大的数字时抛出异常,但在接收到最大值时尝试分配size_t呢?1111...1和 和1111...0有什么不一样new[]?:)
提前致谢!
xorg - IntelSandyBridge (Intel HD Graphics 3000) 上的“X 错误”BadAlloc GLX BadContext
我正在运行一个debian stableThinkPad X1 (1294-3QG),其中包含squeeze-backportsGraphicsModi 所需的三个包:
在运行该内核时,例如启动paraview会导致这些错误:
在网上的某个地方,我找到了在 中提供内存设置的提示xorg.conf,但这并没有解决我的问题。
在当前稳定的内核中启动工作正常。
运行glxgears结果类似:
xserver-xorg-video-intel我进一步尝试通过将(以及所有依赖项libdrm-intel1 libxfont1, xserver-common, xserver-xorg, xserver-xorg-core, xserver-xorg-input-evdev, xserver-xorg-video-fbdev和)更新到反向移植来解决问题xserver-xorg-video-vesa,但这并不成功。
另外,我找到了条目
在 的输出中dmesg。
memory - 内存不足 - 为什么系统不分页最近未使用?
我有一个程序可以进行一些非常密集的图形工作,并且需要大量内存(> 8GB),但是我的机器目前只有 8GB 的 RAM,这意味着程序在内存不足时会抛出错误的分配。
除了这个程序,我还打开了一些其他的东西,占用了我的一些主内存,但大多数情况下只是程序吃掉了内存。
现在,我想知道为什么系统在内存使用量超过 8GB 时会抛出 a bad_alloc,而不是页面错误和换出一些页面?这不是分页和虚拟内存应该解决的问题之一吗?
我应该能够运行需要 > 8GB 内存的程序,如果它只是分页出最近未访问的页面,以便能够为所需的内存创建新页面。
任何人都可以给出解释吗?
我的机器有一个 8GB 的页面文件。
c++ - 为什么动态内存分配在 600MB 之后会失败?
我使用三维 char 数组实现了一个布隆过滤器(位表),它运行良好,直到它无法再分配内存并给出bad_alloc消息。它在分配 600MB 后的下一个扩展请求中给了我这个错误。
布隆过滤器(数组)预计会增长到 8 到 10GB。
这是我用来分配(扩展)位表的代码。
数组的最大允许大小是多少,如果这不是问题,我该怎么办。
编辑:它是使用 32 位平台开发的。
它在具有 8GB RAM 的 64 位平台(服务器)上运行。
visual-studio - Visual Studio 中的内存错误,但有大量可用内存
这行代码产生以下错误
内存位置 0x0037c29c 处的 std::bad_alloc
我认为这与“内存不足”有关。当我减少分配的数量时,它运行良好。
我的机器上有足够的内存(16 GB),资源监视器显示只有一小部分内存被 Visual Studio 使用。我添加了编译器选项/F 4000000000和/LARGEADDRESSAWARE,但仍然出现错误。
如何解决?
c++ - 列表分配错误
我有这个虚拟方法:
哪里children是 a std::list<std::shared_ptr<base_class>>,并my_class继承base_class。但是,在第一次递归调用 (of my_class::to_string) 之后,在我返回这个 child 之后str,我得到了一个错误的分配。
为什么?