c++ - 如何动态创建具有已知二维的 C++ 数组?

标签 c++ arrays multidimensional-array

我有一个函数:

void foo(double[][4]);

它采用一个二维数组,其第二维等于 4。我如何分配一个二维数组,以便我可以将它传递给函数?如果我这样做:

double * arr[4];
arr = new double[n][4];

编译器不知道 n。我无法编译它。如果我使用通用二维动态数组,函数 foo 将不会接受它。

最佳答案

根据要求,最好使用 typedef

 typedef double four[4];
 four *arr;     // equivalently double (*arr)[4];
 arr = new four[n];

如果没有 typedef,你会变得更加神秘

double (*arr)[4];
arr = new double [n][4];

不过,您确实应该考虑使用标准容器(std::vector 等)或容器的容器。

关于c++ - 如何动态创建具有已知二维的 C++ 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638249/

相关文章:

c++ - 简化涉及在 C++ 中连接整数的 std::string 构造

c++ - C++ 中的正则表达式从正则表达式中获取文本任何部分中的字符串

arrays - 将值插入数组并显示,nasm

javascript - 在数组数组中查找重复项并处理它们

javascript - 如何分配多维数组中的单个元素 (JavaScript)

arrays - 在二维数组中搜索相邻的相同对象

c++ - 概念正则与概念半正则

c++ - 通过 copy 和 decltype 捕获 Lambda 引用

javascript - 将项目返回到数组中

java - 如何将字符串数组转换为唯一值数组?