2012-07-10 49 views
0

我想了解我正在使用的C++代码会导致内存不足错误。这是一个带有几个标志变量的科学代码,用于打开/关闭一堆代码功能。当几个函数关闭时,代码工作正常。然而,当这些程序被激活,它会导致“内存不足。”情况....由QSUB创建在C++内存错误中的并行MPI代码

错误的文件,说 退出状态:-4

工作终止由于一个或多个节点上运行内存不足。我所说的功能曾经很好,直到我做了一些补充。我基本上创建了一些指针,初始化为NULL,创建一个内存块与其​​关联,存储一定量的兴趣,然后删除[] * p

我在努力弄清楚问题的根源。我不知道是什么导致它..我相信它的一些C + +编程错误(我忽略了由于我的C++经验不足)。有没有办法找出错误是什么......它在哪里或如何解决它。

跑的几点思考我的脑海里, - 使用尝试{}赶上{} - 运行一些内存的程序,以跟踪系统的内存使用量(实时) - 调试MPI/C的任何其他有效的方式++代码为这种情况。

  • 我读了关于堆栈和堆的内容以及内存是如何存储的......什么是最快最容易的方法来声明2D数组,一维数组......基于指针或基于数组定义.. ??

请用你的想法教育我。

+1

尝试将代码缩减为最简单的示例。如果你在这里分享它,我们会更容易阅读。大多数情况下,你会在练习时发现问题。 – 2012-07-10 22:41:28

回答

0

valgrind应该能够告诉你内存在哪里泄漏。