永发信息网

C++ 看到了new的奇怪用法,求高人解释下。

答案:2  悬赏:0  手机版
解决时间 2021-02-14 18:07
  • 提问者网友:抽煙菂渘情少年
  • 2021-02-14 14:08
C++ 看到了new的奇怪用法,求高人解释下。
最佳答案
  • 五星知识达人网友:鸽屿
  • 2021-02-14 14:43
举个例子,你就明白了:
void main() {
char s[sizeof(A)]; //先分配一块内存,大小正好能容纳A
A* p = (A*)s; //p指向的了这块内存
new(p) A(3); //p->A::A(3); 在已经分配好的内存上调用A的构造函数,并不会分配一块新的内存。
p->Say();
}
它实现了在指定内存地址上用指定类型的构造函数来构造一个对象的功能,后面A(3)就是对构造函数的显式调用。

所以,你的&ptr[i]这个位置必须已经指向了有效的内存。
全部回答
  • 1楼网友:污到你湿
  • 2021-02-14 14:53
百度c++ placement new
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯