如何创建内存泄漏?

the*_*eva 0 c memory-leaks

我想在堆上分配一些无法从任何堆栈指针访问的内存.(这是出于测试目的).

void *ptr = malloc(sizeof(int));
void *ptr2 = malloc(sizeof(int));

ptr = ptr2;
Run Code Online (Sandbox Code Playgroud)

如果我执行此代码,我认为ptr和ptr2在开始时是堆栈上的两个指针,指的是堆上的一些已分配的内存,对吧?然后当我执行ptr = ptr2时,第一个mallocated内存仍然在堆上但不能以任何方式从堆栈中到达.是这样吗?

我有一个程序正在搜索堆栈以查找堆上的所有活动对象,因此我想测试它实际上是否有效.

use*_*ica 5

这样可行.但它比必要的更复杂:

malloc(4);
Run Code Online (Sandbox Code Playgroud)

泄漏内存的最简单方法是首先不保存对它的引用.