使用 new、malloc 和 free 布局
基本上,我有一个使用 malloc 分配的内存块,我想开始使用placement new 将对象放入其中。我知道当我删除这些对象时,必须显式调用它们的析构函数,但…
放置新的中断常量和引用?
根据我对 href="https://stackoverflow.com/questions/7580635/how-to-copy-or-swap-objects-of-a-type-that-contains-members-that-are-referenc…
C++ 中的放置新运算符是什么? java有吗?
我听说过 C++ 的放置新运算符。我很困惑它是什么。不过,我可以在 stackoverflow 中的一个问题下看到它可以在哪里使用。我也很困惑java中是否有这个。…
我可以在 operator= 中使用放置 new(this) 吗?
背景: 我有一个包含许多变量的复杂类。我有一个健全且经过测试的复制构造函数: Applepie::Applepie( const Applepie ©) : m_crust(copy.m_crust…
我可以对用新放置分配的指针调用delete吗?
我们可以对分配有placement new的指针调用delete吗?如果没有那为什么?请详细解释一下。 我知道没有放置删除。但我想知道为什么只是删除操作者不能删…
如何为具有内部放置 new 的类实现安全复制构造函数(使用 std::string)
这是我的代码: struct RS_Token { char id; char cleanup; unsigned char array[sizeof (std::string) > sizeof (double) ? sizeof (std::string) : …
如何删除通过放置new运算符构造的对象?
char * buf = new char[sizeof(T)]; new (buf) T; T * t = (T *)buf; //code... //here I should destruct *t but as it is argument of template and…
通过放置 new 转移对象所有权
我有一个 Visual Studio 2008 C++ 项目,其中有一个管理无法复制的资源的类。我已经实现了按引用结构传递语义(ala std::auto_ptr)。 class Test; st…
C++ 中放置 new VS 显式构造函数调用
最近我遇到了这两种在内存中特定位置创建对象的方法: 1. void* mem = malloc(sizeof(T)); T* obj = new(mem) T(); 2. T* obj = (T*)malloc(sizeof(T)…
在历史代码中不寻常地使用 new。这是什么意思?
我只是移植一些旧代码: #define NewArrayOnHeap(TYPE, COUNT, HEAP, NEWPTR, ERROR) \ ((*(NEWPTR) = new ( #TYPE "[" #COUNT "]", __alignof(TYPE),…
关于如何在基于动态数组的结构中存储键值对的想法
我有一个具有以下属性的动态数组: 存储键值对结构。 每当添加条目时重新分配内存 (realloc)。调用构造函数。 删除很棘手 - 被删除的条目必须从它所在…