c - 太多的内存被 malloc,以至于当我的程序运行得足够深时,我得到 "Killed"

标签 c memory malloc

我有一个程序,它进行 n^2 层递归,并分配一堆内存以将 char* 连接在一起。如果 n 足够大,该进程就会被服务器终止(因为它消耗了太多内存)。如何释放该内存并仍然保留我的数据?

它的 malloc 看起来像

test = (char *)malloc(sizeof(char) * 256);

我需要这些数据直到程序结束。我该如何处理这个问题?

最佳答案

你不能。一旦释放内存,数据就会消失。

您可以做的就是更好地利用可用的内存。根据您发布的代码,我想不出一种方法可以帮助您更好地管理内存

关于c - 太多的内存被 malloc,以至于当我的程序运行得足够深时,我得到 "Killed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3850902/

相关文章:

c - 如果不使用 malloc block 会怎样?

c - 递归 realloc() 在第 7 圈后抛出 "invalid next size"

c - 修改全局变量的函数中的互斥锁

linux - 从用户空间创建物理内存以用于 DMA 传输

java - Java中盒装原语的存储成本是多少?

mysql - mysql查询后释放内存

c - 如何分配二维数组?

c - 如何用 C 将二进制位写入二进制文件?

c++ - 间接运算符和指向数组的指针

C 代码到 mips 汇编