【发布时间】:2021-06-02 22:33:01
【问题描述】:
您好,了解更多placement new,operator new,表达式delete.. 并将初始化与构造分开,我试过这个例子:
int main(){
int* p = static_cast<int*>(operator new[](10 * sizeof(int)));
p = new(p)int[10];
for(int i = 0; i != 10; ++i)
p[i] = i * 7;
for(int i = 0; i != 10; ++i)
std::cout << p[i] << ", ";
operator delete[](p);
}
-
我已经编译并运行了它,它运行良好,并使用 Valgrind 检查了它是否存在内存泄漏,没有报告任何不良情况。那么初始化和分配是怎么分开的呢?
-
我不确定的是我使用 operator delete 来释放动态数组的内存但没有销毁它(没有放置删除)。那么我的代码中有什么不好的地方吗?
【问题讨论】:
标签: c++ new-operator delete-operator placement-new