我正在编写一个程序来泄漏内存(主内存)来测试系统如何与低系统内存和交换内存的行为。我们使用下面的循环周期性运行,并出现内存泄漏内存泄漏使用malloc失败
main(int argc, char* argv[])
{
int arg_mem = argv[1];
while(1)
{
u_int_ptr =(unsigned int*) malloc(arg_mem * 1024 * 1024);
if(u_int_ptr == NULL)
printf("\n leakyapp Daemon FAILED due to insufficient available memory....");
sleep(arg_time);
}
}
上述循环运行了一段时间,并打印消息“leakyapp守护进程失败,因为可用内存不足......”。但是当我运行“free”命令时,我可以看到运行该程序对主内存或交换没有任何影响。
我做错了什么?
我觉得“不”,在最后一行应删除:-) – Job 2010-08-17 07:54:20
我改变了我的代码,因此我宣布一个阵列来存储所有指针 的char *一[1000]; 而在while循环 u_int_ptr = MMAP(NULL,arg_mem * 1024 * 1024,PROT_READ | PROT_WRITE,MAP_PRIVATE | MAP_ANONYMOUS | MAP_POPULATE,-1,0); A [1] =(字符*)u_int_ptr; //触摸页面* a [i] ='A'; i ++; 但我仍面临着同样的问题。 – Poorna 2010-08-17 08:13:47
它在内存上执行memset后工作 – Poorna 2010-08-17 16:14:06