gpt4 book ai didi

c++ - Omnet++:std::bad_alloc

转载 作者:行者123 更新时间:2023-11-28 02:21:46 28 4
gpt4 key购买 nike

我基于 ad hoc 网络运行模拟,当节点数量很大(100 个节点)并且模拟时间很长(超过 300 秒)时,我得到以下错误:

Error in module (MobileOverlay) MobilePeerNetwork.MobilePeer[73].overlay.moverlay (id=3023) at event #508013243, t=372.42387824: std::bad_alloc: std::bad_alloc.

我想知道是否有一种方法可以在不使用 Valgrind 选项的情况下找到问题的确切位置,因为我在 Windows 7 中工作。

最佳答案

您收到此错误是因为在对象创建过程中 new[] 未能分配请求的存储空间。

因此,要么您的硬件不支持您尝试运行的模拟,要么您忘记释放之前分配的内存,因此您的机器内存不足。

这是一篇有用的帖子:"std::bad_alloc": am I using too much memory? .


基于 OMNeT++ 指南:

Profiling support is based on the valgrind program, http://valgrind.org. Valgrind is a suite of tools for debugging and profiling on Linux. It can automatically detect various memory access and memory management bugs, and perform detailed profiling of your program. Valgrind support is brought into the OMNeT++ IDE by the Linux Tools Project of Eclipse, currently in incubation state.

所以最初的建议是切换到 Linux 机器——也许是虚拟机,来完成你的工作。从长远来看,在 Linux 上使用 OMNeT++ 将使您受益更多。

显然,您正在寻找一个快速(也可能是肮脏的)解决方案,因此您可以引用:Windows Eclipse CDT profiler

关于c++ - Omnet++:std::bad_alloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157196/

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