问题标签 [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 stable
ThinkPad X1 (1294-3QG),其中包含squeeze-backports
GraphicsModi 所需的三个包:
在运行该内核时,例如启动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
,我得到了一个错误的分配。
为什么?