SelectInst *Sel = new(3) SelectInst(C, S1, S2, NameStr, InsertBefore);
这里的new
运算符是什么意思?
new
运算符后面的数字3
是什么意思?
发布于 2017-05-03 15:50:08
假设SelectInst
提供了一个用户定义的placement operator new,它接受一个int
作为用户定义的参数;调用语法意味着使用该用户定义的放置operator new
进行内存分配。例如:
class SelectInst {
public:
static void* operator new (std::size_t count, int args) {
// ~~~~~~~~
...
}
};
SelectInst *Sel = new(3) SelectInst(C, S1, S2, NameStr, InsertBefore);
// ~~~
发布于 2017-05-03 15:46:11
在doc 上,它说这是以字节为单位请求的内存量。(如果没有重载)这是一个3 *8 = 24位的请求,用于在内存中存储对象。想想看,在malloc的残留物上。
https://stackoverflow.com/questions/43753974
复制相似问题