【问题标题】:C++ New KeywordC++ 新关键字
【发布时间】:2023-01-27 01:59:52
【问题描述】:

我正在看这个关于堆栈和堆的教程:

When to use new operator in C++ and when it should not be used?

而在堆的例子中,它使用了new关键字,但他首先将int* ptr1初始化为NULL。这重要吗?如果重要,为什么?或者,它只是在浪费空间吗?

我查看了代码并试图思考为什么在您可以使用 int* ptr1 = new int(28); 时首先使用 NULL

边注: 如果有人也能通俗地解释一下堆栈和堆,将不胜感激。

【问题讨论】:

  • 应该使用 good c++ book 而不是在线教程来学习 C++。这些基本内容在任何初学者 C++ 书籍中都有解释。
  • 大多数人都会这么想。 (这不是一个很好的学习来源。没有已知的好的在线 C++ 教程。找一本好书。)
  • 没有充分的理由。
  • 网络上有许多过时和糟糕的教程。远离任何使用using namespace std; 或使用NULL(而不是现代的nullptr)的人。
  • @chi 不要忘记那些#include <bits/stdc++.h>、geeksforgeeks 和所有竞争性编码网站

标签: c++ stack new-operator heap


【解决方案1】:

在声明时初始化指向 nullptr 的指针是一个值得坚持的优秀实践。

但是,他们在教程中所做的可以做得更好。我认为它更像是一个语法示例。

如果能在声明的时候进行初始化,那就更好更快了。使用 nullptr 而不是 NULL,它只是 0 的一个宏,这可能会有问题。

如果想深入了解指针,推荐学习智能指针。它们可以成为避免错误和内存泄漏的一种非常有效的方法。

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2014-10-12
    • 1970-01-01
    • 2021-07-11
    相关资源
    最近更新 更多