C++中的new是如何实现的
发布网友
发布时间:2022-04-21 07:55
我来回答
共1个回答
热心网友
时间:2023-09-13 09:58
对于C++来说, 无论new的是啥东西, 到了底层都是分配内存+初始化
分配内存都是使用malloc进行的, 无论多少维的数组
然后使用如下函数可以对这段内存进行构造初始化
template<class T>
inline void type_constructor(T* p)
{
new(p)T;
}
这个对应的是delete里的析构
template<class T>
inline void type_destructor(T* p)
{
p->~T();
}
整个过程可以自己实现. 从而实现从自己的内存分配器分配内存给对象或者数组