在Linux下创建内存泄漏

时间:2015-01-20 08:13:35

标签: c shell memory memory-leaks embedded-linux

我使用open embedded创建了一个嵌入式自定义Linux发行版,我想测试我的系统的行为。我的测试用例是看“当用户空间应用程序创建内存泄漏时会发生什么。”

因此,出于测试原因,我想使用脚本shell或C?

创建内存泄漏

有人可以帮我吗?

4 个答案:

答案 0 :(得分:2)

此功能将泄漏:

void leakingFunction()
{
    int* a = malloc(100);
}

答案 1 :(得分:0)

很容易产生内存泄漏

void func()
{
  int *ptr = malloc(sizeof(int) * 1000);
  return;
}

你没有释放分配给指针ptr的内存,因此存在内存泄漏,因为这个分配的内存不可用于其他应用程序,并且最终如果你继续这样做,那么你的内存不足。

while(1)
{
   int *ptr = malloc(sizeof(int) * 1000);
}

答案 2 :(得分:0)

Codegolf?

main(){for(;;)malloc(9999999);}

答案 3 :(得分:-1)

ee.c

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

 int main( void )
{
    int *ptr = NULL;

    while ( 1 )
    {
        ptr = (int*) malloc ( 1024 );
        sleep ( 2 );
    }
    return ( 0 );
}
  1. gcc -o memory ee.c
  2. mem_leak.sh

    #!/bin/bash
    echo " memory leak script started"
    ./memory
    
    1. chmod 777 mem_leak.sh
    2. ./ mem_leak.sh