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 –