2011-10-14 28 views
0

我被一個C++賦值停留在哪裏,我應該做一個簡單的線程和另一個線程具有相同的邏輯,但也有內存泄漏。有和沒有內存泄漏的線程

這應該只是一個簡單的線程示例,即使沒有做任何有用的本身。所以我想我的問題是,什麼是最簡單的線程,可以在C + +,如果我已經正確理解,使其泄漏內存,我應該做一個變量,這是永遠不會被刪除? 也應該把這個「泄漏」放在一個循環中或以其他方式重複......因爲對於我而言,只留下一個未刪除的變量似乎不是主要泄漏。 -

while(true) { 
    new char; 
} 

帶來最系統停頓很快

new char; 

你可以將它放在一個循環,如果你想要更多,但要小心:

+0

什麼操作系統?你允許使用任何庫嗎?哪個版本的C++? – RedX

+0

windows(7)將是首選,一切都允許......但越簡單越好......我不確定C++版本,但我使用的是Microsoft Visual C++ 2010 express – Rene

+0

其中一種本地方法是' CreateThread'但我也建議'boost :: thread'。 – RedX

回答

0

這將爲泄漏足夠 - 他們開始交換並變得幾乎不可用。海事組織你應該堅持泄漏一些物體,除非你有其他具體要求。

+0

謝謝,這個while循環足以拋出關於內存不足的錯誤,但我也想知道如何構建一個「圍繞」這個線程。 – Rene

0

你總是可以分配一個大對象(比如一個大緩衝區)並且永遠不會釋放它;這樣一個單一的分配將是一個大量的內存泄漏。

另外,如果你有一個被設計成某種經常調用的工作線程的線程,並且在那裏有一個小的內存泄漏,那麼在程序的運行時間內,通過「千死亡削減「風格的泄漏。

0

有一個Boost線程庫,它可能是C++線程中最簡單的選項。是的,內存泄漏只是一個未刪除的變量。如果你不想要一個變量的內存泄漏,只需分配一個你認爲需要的任意大小的數組。 new char[x],其中x是你想要多少字節的內存泄漏