2
A
回答
1
delete p
只刪除一個元素。 delete [] p
刪除一個數組。如果您使用new type[]
,則使用delete []
。
如果你是new
有一個[]
,那麼delete
有一個[]
。
順便說一句,必須有一個確切的重複這個地方。
4
一個實例的數組仍然是一個數組。根本沒有特殊情況,所以你需要把它看作一個數組而不是一個單一的對象。非數組delete
可能會崩潰。
對象數組之前可能有一個表示數組大小的數字。如果是這種情況,delete[]
而不是delete
,足夠聰明,可以將正確的指針傳遞給free
。
2
他們是不是相同。即使delete p
可以編譯,但可能會在運行時造成問題。
delete p
將調用operator delete(void*)
其中delete []
將調用operator delete[](void*)
。 delete[]
的默認行爲是撥打delete
,但如果已實施delete []
的自定義運營商,則在您撥打delete
時將不會被調用,並且您將遇到問題(可能是無聲的)。
好的經驗法則是,如果您在new
中使用[]
,請在delete
中使用它。
+0
不是一個經驗法則,一個要求。 – GManNickG 2010-03-21 23:38:13
相關問題
- 1. 從對象數組中刪除對象
- 2. 從數組中刪除一個對象?
- 3. Javascript /數組/刪除一個對象/添加一個對象
- 4. 的JavaScript對象的數組中刪除單個條目
- 5. REST - 刪除一組對象
- 6. 無法從數組中刪除對象
- 7. 從數組中刪除stdClass對象
- 8. 從數組中刪除角對象 - $$ hashKey?
- 9. 使用對象從數組中刪除
- 10. 的Javascript刪除對象鍵數組值
- 11. 無法刪除對象數組C++
- 12. symfony2原則刪除對象數組
- 13. 刪除數組中的同一對象
- 14. 從json對象中刪除json數組
- 15. 從數組中刪除對象Iphone
- 16. 在JavaScript數組刪除特定對象
- 17. MongoDB:從數組中刪除對象
- 18. 從數組中刪除對象onclick
- 19. 從數組中刪除JSON對象
- 20. 從數組中刪除對象
- 21. JavaScript - 從對象中刪除數組
- 22. 從數組中刪除對象
- 23. 從嵌套數組中刪除對象
- 24. 從對象中刪除空數組-c
- 25. 從數組中刪除對象
- 26. 從JavaScript數組中刪除對象?
- 27. 從PHP JSON對象中刪除數組
- 28. 如何刪除空對象的數組?
- 29. 從數組中刪除對象
- 30. PHP刪除對象的內部數組
'new'和'delete'必須匹配,否則你的行爲不確定。似乎在一個平臺上工作是一個未定義行爲的可能結果,正如一切都非常糟糕。不要這樣做。 – GManNickG 2010-03-21 04:01:36