我正在编写一个内存非常密集的程序,它将包含数十个malloc'd数组。当应用程序收到低内存警告时,我想转储每个这些数组的下半部分。有没有办法做到这一点?
我需要一些方法可以保留每个数组中的一半内存。显然,如果应用程序内存不足,我无法分配较小的数组,将一半数据复制到其中,然后释放旧数组。是否有任何函数可以释放从指针A开始到指针B结束的内存块?
答案 0 :(得分:2)
Realloc()可以将malloc内存的尾部返回给分配池,但不能将其返回给操作系统。
Realloc()也无助于内存碎片,这可能是内存不足的问题。
答案 1 :(得分:0)
如果它们是NSMutableArrays,您可以使用单个[NSNull null]
实例替换下端的对象,从而释放所有这些对象。