今天我被要求在PhP中创建一个内存泄漏(故意)。现在,我在#c& amp; C ++。
我知道#c中没有垃圾收集器,因此c +中的内存泄漏通常是在使用malloc将其从堆栈中删除之前从变量中丢失引用而创建的。
在java和PhP中,我知道当你忘记删除引用时内存会泄露。
因此,任何人都可以创建泄漏的最简单方法之一是:
$leak = [];
$ticks = 0;
while(true){
$leak[$ticks] = getHugeObject();
$ticks++;
unset($leaks[$ticks]); //This creates a memory leak because the tick was already added, before that object gets removed.
}
//Program should crash after reaching memory limit.
这很简单。但是,我不允许使用数组来创建泄漏。所以我觉得因为无法完成这么简单的任务而感到难以置信。想法?