为什么我们使用指针而不是简单地创建特定尺寸的数组

Why do we use pointers instead of simply creating an array of specific size?

本文关键字:创建 数组 简单 我们 指针 为什么      更新时间:2023-10-16

我是C 的新手,对不起,如果以前问过,但我找不到它。为什么我们要使用指针而不是简单地创建特定尺寸的数组?

  int** ary = new int*[rowCount];
   for(int i = 0; i < rowCount; ++i)
    ary[i] = new int[colCount];

int ary[rowCount][colCount]; 

两者有什么区别?我知道第一个是在堆内记忆的作品,第二个在堆栈上工作,但是为什么大多数人使用第一方法?

一个区别是,仅当rowcount和colcount都是常数表达式时,第二个区别才会编译。另请参见数组声明。

另一方面,即使这些变量在运行时发生了变化,第一个也会编译。

顺便说一句,所有这些都类似于C。如果您使用的是C ,则最好使用std::vector作为第一个选项,第二个选项为std::array