我只是不小心写了下面的代码。 在linux环境下使用gcc 4.4.7编译。
int main ()
{
new int;
return 0;
}
我很惊讶编译器没有指示任何错误或警告。是否提到了 c++ 标准?在这种情况下是否仍然可以防止内存泄漏?欢迎任何建议。
最佳答案
这就是为什么您应该尽量避免在新代码中使用原始"new"的原因之一。 std::make_shared 和 c++14 中的 std::make_unique 更安全,因为它们将通过返回知道何时以及如何删除对象的 shared_ptr 和 unique_ptr 对象来确保内存被正确删除。这样做的目的是 raw new 将主要只在实现数据结构的低级代码中需要。
关于c++新运算符使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16356643/