c++ - 在不使用任何循环的情况下动态分配二维数组?

标签 c++ c dynamic allocation multidimensional-array

我们能否在不使用任何 for 循环或 while 循环的情况下动态分配二维数组? 我在 c c++ 中有任何直接命令或函数吗?

最佳答案

如果不使用循环,您将在 ISO c++ 中受到一个限制,即一维的大小必须在编译时确定。然后可以在单个语句中完成此分配,如下所示:

#define COLUMN_SIZE 10 // this has to be determined at compile time
int main()
{
    int (* arr)[COLUMN_SIZE];
    int rows = 20; // this is dynamic and can be input from user at run time
    arr = new int[rows][COLUMN_SIZE];
    arr[3][4] = 10;
    cout << arr[3][4] << endl;
    return 0;
}

new分配的内存需要释放。此外,如果我们将其扩展到 n 个维度,只有一个维度可以在运行时确定。 原因是编译器必须知道每一行的大小才能创建一行连续的内存

关于c++ - 在不使用任何循环的情况下动态分配二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635066/

相关文章:

bash - awk是否支持动态用户定义变量?

c++ - boost::process 系统泄漏文件描述符

c - 移动数据 block ——memcpy 还是 memmove?

c++ - 我如何发送 gzip 而不是通过跳过 header 缩小

c - 在 fork 进程上使用相同的变量

c - int a[9] 和 a[3][3] 的区别

dynamic - OpenGL (ES 2.0) 动态改变线宽

php - 在 PHP 中从具有动态类名的类中获取静态属性

c++ - C++ 中的位模式

c++ - 指针(指向指针)和新/malloc vector ( vector 内部)c++