gpt4 book ai didi

c++ - 内存耗尽会导致段错误吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:38:24 25 4
gpt4 key购买 nike

我正在解决 codechef 上的问题。

我已经编写了问题的算法,它在测试用例上运行良好。虽然,当我在 codechef(online) 上运行它时,它会抛出段错误。

我已经仔细检查过,我没有访问任何不可访问的内存位置,尽管我怀疑我的程序可能占用了大量内存。

所以,我的问题是,当没有更多内存可供程序执行时,是否可以抛出段错误。类似于 C# 中的 OutOfMemoryException

最佳答案

这取决于您分配内存的方式以及您是否在这样做时检查错误。例如。 malloc 会在内存不足的情况下返回 NULL。检查失败可能会导致取消引用 NULL,这会导致段错误。如果您使用 C++ 的 new,它会抛出异常。

实际上,当一个程序进行过多的内存分配时,它通常会使系统 RAM 过度使用,并且它的进程在其 malloc 开始返回 NULL 之前被 OOM killer 杀死s - 除非大部分分配的内存实际上未使用。

关于c++ - 内存耗尽会导致段错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25103584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com