c++新运算符使用问题

标签 c++ new-operator

我只是不小心写了下面的代码。 在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/

相关文章:

c++ - 使用运算符重载添加分数

c++ - C++中的引用调用

c++ - 指针数组的动态初始化

c++ - `operator new` 是 C++ 核心语言的一部分吗?

c# - 如何使用 void 方法而不是 bool() 实现提前返回(或覆盖返回)

c++ - 为什么相同的位集不转换为相同的 ulong

c++ - 重新定义格式参数错误

c++ - 如何将同一行中的值分组为一对?

c++ - 如何正确调用对齐的新/删除?

c++ - System V IPC & 新