c - 分析C程序的内存使用情况

标签 c arrays memory memory-management memory-leaks

我知道有很多类似的问题(我不确定是否可能重复)但我的问题足够具体。我在 Windows 和 Unix 中运行 C 程序,我遇到了段错误(核心转储)错误。我知道那个错误的来源。这是因为我有时会通过分配一个大的整数数组来使用大量内存。我的数组大小每次都不同,但我不能(主要是我不想) 使用内存的动态分配。

我想要的是找到一种方法或工具来分析我的 C 程序的内存使用情况,以便对该数组的大小或我所做的任何其他大内存分配设置限制。更具体地说,让我们假设该数组的大小在 4*(2^4) 字节和 4*(2^50) 字节之间。最小值只有 64 字节,但最大值是一个巨大的值。我怎样才能知道我的内存有多少程序需求以及设置的适当限制是什么? 我这样定义一个数组:

int bigarray[行][列],

行在 2^4 到 2^50 之间,列在 4 到 50 之间。

最佳答案

您好,您可以使用工具 valgrind 来检查内存消耗和内存泄漏。

下面是Massif:堆分析器的链接,希望对您有所帮助。

http://valgrind.org/docs/manual/ms-manual.html

关于c - 分析C程序的内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16918447/

相关文章:

java 用给定的信息声明并实例化一个二维数组

java - 永久空间 : Ideal behaviour to be achieved

java - 多维数组对象内存位置

c - 为什么我的编辑器无法识别我的 typedef 结构? C

c - 同步udp广播文件传输

c - 管理内存方向数组

c - 如何根据库中的地址查找函数名称

c - C中的外部数组没有大小

c# - 附加到序列化集合

C 编程 - 限制用户输入一定数量的字符