我需要重載new []/delete []來維護內存資源。 但是我發現new []會爲析構函數分配4個字節(int)。 所以問題是: 如何知道新[]分配4個字節的類數組正確釋放內存?如何知道某個類是否有析構函數
1
A
回答
1
由於new
將爲您的Type
類類型分配sizeof(Type)
字節,因此您可以使用該字段代替硬編碼值。
+0
這不包括數組大小。 'new T [N]'可能需要'N * sizeof(T)+ sizeof(size_t)'。 – MSalters
0
因爲編譯器爲非簡單類型添加了一個int,所以我找到了一個在delete []中沒有釋放的方法,只需調用delete並讓它處理這種情況。
相關問題
- 1. 何時知道某個函數是否是回調函數?
- 2. PHP:如何檢測某個類是否有構造函數?
- 3. VB6類是否具有析構函數?
- 4. AS3是否有類析構函數?
- 5. CoffeeScript是否有類析構函數?
- 6. 如何知道某個特定函數的Java類是否存在?
- 7. 如何知道某個類是否擴展了JWindow類?
- 8. 如何知道某個類是否可以用作靜態類?
- 9. 如何知道函數是否完成?
- 10. 如何知道某個類是否映射爲Hibernate實體?
- 11. 如何知道某個類是否符合某個特定的KVO?
- 12. 知道某個類是否是本徵類
- 13. 我如何知道某個類型是否附有字符串轉換器?
- 14. React如何知道函數是否是一個組件?
- 15. 在Lua中,如何知道表是否包含類函數?
- 16. 在Java中,是否有可能知道某個類是否已被加載?
- 17. 是否有JavaScript函數如何知道首頁網址?
- 18. 如何知道某個類是來自JRE還是外部Jar?
- 19. 如何檢測一個類是否有移動構造函數?
- 20. 如何知道一個dom元素是否是某種類型的標籤
- 21. 如何知道在某國是否有歌曲
- 22. 你如何知道jQuery中是否有某些操作?
- 23. 如何知道是否有某物被射線擊中?
- 24. 是否有可能知道屬於某個類或其父類的屬性
- 25. 你怎麼知道一個NSObject是否有某個屬性?
- 26. 如果基類析構函數是虛擬的,是否需要派生類析構函數定義?
- 27. 如何知道某個進程是否正在運行?
- 28. 如何知道某個x-y座標是否在矩形內?
- 29. 如何知道某個鏈接是否爲視頻?
- 30. EmberJS,DS.Model,如何知道某個特定屬性是否髒?
只需在您分配的類型上調用sizeof(...)。 –
請注意,術語是「析構函數」而不是解構函數 –
你應該解釋爲什麼你需要精確地重載new/delte。 – MagunRa