问题标签 [placement-new]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
2382 浏览

c++ - 为什么我应该使用新的展示位置?

看起来,placement new在预分配的内存上创建一个新对象,这是否意味着它会花费更少的时间?看起来它比使用旧的普通分配更快new。那么,如果这样方便快捷,为什么不一直使用placement new呢?

0 投票
2 回答
1318 浏览

c++ - 放置新地址与原始内存地址

新位置的结果似乎总是与我提供给新位置的内存指针相同。对于 GCC,这似乎适用于具有虚函数的类,例如......

这个程序的输出是(注:64位linux)...

C++ 是否保证 mem 和 ptr 相同,或者这只是 GCC 巧合?在一个更大的可移植程序中,我是否必须同时保留 mem 和 ptr 或者我可以只保留其中一个并在需要时进行转换?

为了澄清这个问题,我知道内存分配器有时会将已分配块的大小放在指向内存块之前的字中。是否允许 C++ 编译器使用这样的技巧,并说将 VMT 指针放在对象指针指向的内存块之前的单词中?在这种情况下,mem 和 ptr 会有所不同。

0 投票
2 回答
215 浏览

c++ - 新的展示位置以获得动态尺寸

基于这个问题:可变大小类型分配

下面的工作吗?

Packet 是 POD 结构,其中最后一个成员是数组。这个想法是允许一个动态大小的数组(就像我们多年前在 C 中所做的那样)

0 投票
2 回答
199 浏览

c++ - 在其他构造函数中调用复制构造函数

我在输出中得到空字符串。C++ 标准对这种行为有什么看法?

0 投票
1 回答
456 浏览

c++ - 如何在 C++ 中放置新的作品?

可能的重复:
C++ 的“新位置”

我刚刚了解了placement new 运算符并尝试创建自己的内存管理器。
这是我的内存模板基类的代码

现在,我从上面的类继承了 myclass,在另一个头文件中,如下所示

现在,我主要尝试通过以下方式创建 myclass 的对象

问题 ::
1. 当我运行 main 时,obj 和 pMyClass1 的基地址与预期的一样。但是,我只是返回指针 pAddress,那么放置 new 是如何工作的?

  1. 我的 obj[10] 在堆栈中,但是没有调用析构函数。

有任何想法吗 ?

阿图尔

PS :: 我必须在 Memory_Base 中实现 new[] 和 delete[]。

0 投票
3 回答
382 浏览

c++ - 为连续内存放置新的

我在将新位置用于连续内存时遇到了一些问题。如果有任何其他方法可以做到这一点,请指导我。
请参考我的代码。

0 投票
3 回答
928 浏览

c++ - 释放从放置新分配的内存

考虑以下代码,

输出:

在这里,我动态地请求一个已经在堆栈上分配的内存。我读到我需要在完成后显式调用析构函数。但是,当我尝试为堆栈上分配的内存调用 delete 时,我会调用析构函数。这是否意味着调用析构函数后释放堆栈上的内存?

如果我动态请求之前在堆上分配的内存,在这种情况下我需要调用删除,但删除实际上释放了堆栈上的内存吗?

0 投票
5 回答
274 浏览

c++ - 用途:在 C++ 中的预定位置构造对象

在 C++ 中的预定位置构造对象有什么用?

以下代码说明了在预定位置的构造-

这最终在预定的“地址”处创建了 MyClass 的对象。(假设地址指向的存储空间足够大,可以容纳 MyClass 对象)。

我想知道在内存中这些预定位置创建对象的用途。

0 投票
1 回答
201 浏览

c++ - c++中下面这句话是什么意思

可能的重复:
C++ 的“新位置”

在下面的代码中,第 3 行代表什么,是类型转换的方式吗?要不然是啥

0 投票
2 回答
151 浏览

memory-management - 如何在预定位置分配内存?

如何在固定位置使用 new 分配内存?我的书说要这样做:

这里 new 是在 buf 的地址分配内存, (10,20) 是正在传递的值。但什么是样本?它是地址还是数据类型?