gpt4 book ai didi

C++ 程序死于 std::bad_alloc,但 valgrind 报告没有内存泄漏

转载 作者:太空狗 更新时间:2023-10-29 20:31:24 24 4
gpt4 key购买 nike

我的程序因“std::bad_alloc”错误消息而失败。该程序是可扩展的,所以我用 valgrind 在较小的版本上进行了测试,没有内存泄漏。

这是统计力学的一个应用,所以我基本上是在制作数百个对象,更改它们的内部数据(在本例中为 double 的 STL vector ),然后写入数据文件。对象的创建位于循环中,因此当它结束时内存是空闲的。像这样的东西:

for (cont=0;cont<MAX;cont++){
classSection seccion;
seccion.GenerateObjects(...);
while(somecondition){
seccion.evolve();
seccion.writedatatofile();
}}

所以有两个变量设置程序的计算时间,系统的大小和运行次数。只有运行多次的大系统才会崩溃。关于如何解决此内存问题的任何想法?

谢谢,

最佳答案

在调试器下运行程序,以便在抛出异常时停止,您可以观察调用堆栈。

三个最可能的问题是:

关于C++ 程序死于 std::bad_alloc,但 valgrind 报告没有内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386291/

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