1
A
回答
1
這行代碼構造的3項C
類型,與此類似,這是希望對你更熟悉的數組:
C *r = new C[3];
的主要區別在於,new(p)
不分配新的內存;相反,它會在p
指向的預先存在的內存緩衝區中構建陣列。例如:
char *p = new char[3*sizeof(C)];
C *r = new(p) C[3];
另一個區別是,你不能使用delete[]
調用deconstructors和釋放內存。你必須調用deconstructors手動
for (int i=0; i<3: i++) r->~C();
delete[] p;
相關問題
- 1. 需要幫助瞭解此代碼
- 2. AsyncTask幫助需要了解
- 3. 需要幫助瞭解MEF
- 4. 需要幫助瞭解
- 5. DOM操作需要幫助
- 6. C# - 需要幫助瞭解Lambda操作和<T>
- 7. 需要幫助瞭解結構用C
- 8. 需要幫助瞭解遞歸
- 9. SQL語句。需要幫助瞭解它
- 10. 需要幫助瞭解Alpha通道
- 11. 需要幫助瞭解Levenshtein距離
- 12. 需要幫助瞭解自動佈局
- 13. 需要幫助瞭解代碼段
- 14. 需要幫助瞭解循環
- 15. 需要幫助瞭解位運算符
- 16. 需要幫助瞭解這個Python Traceback
- 17. 需要幫助瞭解xmpp xeps
- 18. 需要幫助瞭解遞歸示例
- 19. 需要幫助瞭解`liftBase`的用法
- 20. 需要幫助瞭解GLD 2.0的glDrawElements
- 21. RaphaelJS - 我需要幫助瞭解變換
- 22. 需要幫助瞭解REST API端點
- 23. 需要幫助瞭解SQL查詢
- 24. 需要幫助瞭解r中
- 25. 需要幫助瞭解MVC編碼Statementes
- 26. 我需要幫助瞭解Matlab的
- 27. 需要幫助瞭解OpenCL的減少
- 28. 需要幫助瞭解緩衝通道
- 29. 需要幫助瞭解「ABA」問題
- 30. 需要幫助瞭解代碼
查看安置新操作員:http://www.parashift.com/c++-faq/placement-new.html –