2011-05-29 45 views
1

程序員在開發應用程序時遇到的最常見/頻繁的內存泄漏是什麼?內存泄漏的常見原因

有興趣的所有種類的語言,將是很好,如果這可能演變成一個community wiki在哪裏看到不同語言共同泄漏修復。

更新

我有一個建議,以這次談話限制爲C相關的語言,.NET和Python。我認爲這些通常是使用的語言,通常初學者會嘗試使用這些語言。如果需要更多語言,請編輯。

+2

儘管在這個問題上有承諾,但我認爲未能將其範圍限定在特定的語言或環境中會導致它失焦和失敗。 – 2011-05-29 18:10:21

回答

1

編輯此添加類似點。

在C++中,

  1. 忘記刪除指針對象。

在PHP中,

  1. PHP需要的內存管理的憂慮。它在超出範圍時自動刪除變量的內存。
  2. 在長時間運行的PHP腳本,它的手動關閉不需要套接字連接,免費的結果對象等

在.NET

  1. 未能註銷事件處理程序是個好主意。
+1

補充:長時間運行的PHP腳本,最好手動關閉不需要的套接字連接,自由結果對象等。 – Matty 2011-05-29 18:15:03

1

C++

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

對象被初始化在新的存儲器,但永遠不會因此刪除內存泄漏。

要清理超出範圍的new'd對象的內存,必須使用delete關鍵字。

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

.NET

未能註銷事件處理程序。