我知道有很多类似的问题(我不确定是否可能重复),但我的问题足够具体。我在 Windows 和 Unix 中运行 C 程序,并且遇到分段错误(核心转储)错误。我知道该错误的来源。这是因为我有时会通过分配一个大整数数组来使用大量内存。我的数组的大小每次都不同,但我不能(主要是我不想)使用动态内存分配。
我想要的是找到一种方法或工具来分析我的 C 程序的内存使用情况,以便对该数组的大小或我所做的任何其他大内存分配设置一个限制。更具体地说,假设该数组的大小在 4*(2^4) 字节和 4*(2^50) 字节之间。最小值只有 64 个字节,但最大值是一个巨大的值。我怎样才能找出我的程序需要多少内存和设置的适当限制是多少?我定义了一个这样的数组:
int bigarray[rows][columns]
,
其中行介于 2^4 和 2^50 之间,列介于 4 和 50 之间。