Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在Linux下创建内存泄漏_C_Shell_Memory_Memory Leaks_Embedded Linux - Fatal编程技术网

C 在Linux下创建内存泄漏

C 在Linux下创建内存泄漏,c,shell,memory,memory-leaks,embedded-linux,C,Shell,Memory,Memory Leaks,Embedded Linux,我使用OpenEmbedded创建了一个嵌入式定制Linux发行版,我想测试我的系统的行为。我的测试用例是查看“如果用户空间应用程序创建内存泄漏”会发生什么 出于测试原因,我想使用脚本shell或C创建内存泄漏 有人能帮我吗?此函数将泄漏: void leakingFunction() { int* a = malloc(100); } 内存泄漏很容易产生 void func() { int *ptr = malloc(sizeof(int) * 1000); return;

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

出于测试原因,我想使用脚本shell或C创建内存泄漏


有人能帮我吗?

此函数将泄漏:

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

内存泄漏很容易产生

void func()
{
  int *ptr = malloc(sizeof(int) * 1000);
  return;
}
您没有释放分配给指针
ptr
的内存,因此存在内存泄漏,因为此分配的内存不可用于其他应用程序,如果继续这样做,最终会耗尽内存。如

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

main(){for(;;)malloc(9999999);}
ee.c
  • chmod 777 mem_leak.sh
  • ./mem_leak.sh

  • 另一个问题是,如果我在被OMM杀手杀死之前退出程序,系统将恢复程序分配的内存。创建永久内存泄漏??否。。。一旦退出程序,程序分配的所有内存都将被清空。
    #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 );
    }
    
    #!/bin/bash
    echo " memory leak script started"
    ./memory