首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存分配

内存分配
EN

Stack Overflow用户
提问于 2010-08-25 16:58:14
回答 4查看 301关注 0票数 2

我目前正在尝试使用c语言,但是我在内存分配方面遇到了一些问题。一段时间后,我不得不重新启动我的计算机,因为我的内存已满。有没有办法让编译器告诉我哪些数组在程序运行后没有被释放?

答案: Thx

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-25 16:58:41

您可以使用valgrind来完成此操作。

http://tldp.org/HOWTO/Valgrind-HOWTO/ http://valgrind.org/

在编译后的程序中使用它--leak check=yes

票数 3
EN

Stack Overflow用户

发布于 2010-08-25 17:41:44

你没有告诉我们任何关于你的编译器,操作系统,平台的事情...因此,剩下的只能是胡乱猜测。

这听起来很像你有死的进程或者类似的东西,它们在后台不断地消耗你的内存。在linux上,你可以使用top (在top内部按M)来检查系统上运行的进程,以及它们消耗了多少内存、时间等。这样做可以查看您的机器上发生了什么,并且在不知道原因的情况下不要盲目地重新启动它。

在所有其他操作系统上都有类似的工具,可以让您检查进程的当前状态。

票数 2
EN

Stack Overflow用户

发布于 2010-08-25 17:02:11

您有一些工具可以告诉您有关内存泄漏的信息。我担心编译器在这方面可能没有用处。

您还可以使用DevPartner或Valgrind来分析内存泄漏,以防您怀疑它们。但是对于由于内存问题而重新启动的系统,在执行重新启动之前,您要运行应用程序多长时间。

你是怎么知道这是一个与内存相关的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3564247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档