在 C++ 中是否可以在特定的内存位置创建一个新对象?我有一块共享内存,我想在其中创建一个对象。这可能吗?
原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议
int *ptr=(int *)0x1234;
classname *objname = new (ptr) classname;
你可以通过简单地做到这一点。
原文由 Hassan Ali 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
您想要 放置
new
() 。它基本上使用一块现有内存而不是从堆中分配新内存来调用构造函数。编辑: 确保您了解有关负责为使用放置
new()
创建的对象显式调用析构函数的注释,然后再使用它!