内存泄漏的常见原因

时间:2011-05-29 18:07:04

标签: performance memory-leaks

程序员在开发应用程序时遇到的最常见/频繁的内存泄漏是什么?

对所有类型的语言感兴趣,如果这可以演变成community wiki,可以看到针对不同语言的常见泄漏的修复,那将会很好。

更新

我建议将此对话限制为C相关语言,.NET和Python。我认为这些通常是使用过的语言,而且初学者通常会尝试使用这些语言。如果需要更多语言,请编辑。

3 个答案:

答案 0 :(得分:1)

C ++

void Foo()
{
    Object* newObject = new Object();
}

对象在新内存中初始化,但永远不会被删除,因此内存泄漏。

要清除超出范围的新对象的内存,必须使用delete关键字。

void Foo()
{
    Object* newObject = new Object();
    delete newObject;
}

答案 1 :(得分:1)

  

编辑这可以添加类似的点。

在C ++中,

  1. 忘记删除指针对象。
  2. 在PHP中,

    1. PHP负责内存管理。当变量超出范围时,它会自动删除变量的内存。
    2. 在长时间运行的PHP脚本中,最好手动关闭不需要的套接字连接,免费结果对象等。
    3. 在.NET中

      1. 未注销事件处理程序。

答案 2 :(得分:0)

.NET

未能取消注册事件处理程序。