c++ - 在堆上创建指针有用吗?

标签 c++ pointers

<分区>

在堆上创建指针或指针数组有用吗?如果是这样,我何时以及为什么需要这样做?

例如:

#include <iostream>

class Box { /*  things... */ };

int main(void){

    // Single pointer on the heap
    Box** pBox = new Box*(nullptr);
    *pBox = new Box();

    // Array of pointers on the heap
    Box** pBoxes = new Box*[3]{};
    pBoxes[0] = new Box();
    pBoxes[1] = new Box();
    pBoxes[2] = new Box();

    // Delete pointers...

    return 0;
}

编辑:只是为了让我的问题更清楚...我知道处理原始指针不是最佳实践...我只想完全理解指针及其用途,因为它们是 C++ 的重要组成部分,因此我的问题是(有用吗...)。

最佳答案

在堆或栈上分配任何内存空间背后的原因与分配的变量类型无关,它与它的分配方式和使用方式有关。

无论如何,如今您通常应该避免使用 new 语句并使用“托管”指针,尤其是 std::xxx 变体。

关于c++ - 在堆上创建指针有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36778000/

相关文章:

c++ - 使用 std::rand() 在 C++ 中进行硬币翻转实验,结果不正确

c++ - 如何在 C++ 中使用 JSExport 和 JavascriptCore

C++: "Multi-character character constant"从文件读取到 char 数组时发出警告

c - 在 C 函数中将结构指针设置为 NULL

c - 在 C 中返回 malloced 指针

c - 指向多维数组的指针

c++ - 我怎样才能调整这些功能,使其即使在值范围的极端情况下也能正常工作? (逆对数)

c++ - 使用容量受限的队列按顺序列出字符串?

perl - 在 perl 中使用指向文件中行的指针

在 C 中使用指针将大写字母转换为小写字母