C 在Linux下创建内存泄漏
我使用OpenEmbedded创建了一个嵌入式定制Linux发行版,我想测试我的系统的行为。我的测试用例是查看“如果用户空间应用程序创建内存泄漏”会发生什么 出于测试原因,我想使用脚本shell或C创建内存泄漏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;
有人能帮我吗?此函数将泄漏:
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
另一个问题是,如果我在被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