我有一个函数:
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/