Zwi*_*bel 4 c multidimensional-array
我想在C中制作一个二维数组.
例如,我创建一个名为place的int类型变量,如下所示:
int *place;
Run Code Online (Sandbox Code Playgroud)
我有一个游戏,它有像行和列这样的变量.我希望我的place变量是一个二维数组,动态分配它的行和列(对于数组的最大大小),在"普通"声明中看起来像这样:
place[rows][columns];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何用动态分配来做到这一点.
对于一维数组我会这样做:
place = (int*) malloc (levels * sizeof(int));
Run Code Online (Sandbox Code Playgroud)
但我不知道如何用2D数组做到这一点.
编辑:
我如何为char而不是int重写这个?
我试图用chars覆盖整数,但它不起作用.
Dan*_*her 10
让我们place成为一个指向数组的指针
int (*place)[columns] = malloc(rows * sizeof *place);
Run Code Online (Sandbox Code Playgroud)
这为您提供了一个可以简单访问的连续内存块(适用于本地)
place[i][j] = whatever;
Run Code Online (Sandbox Code Playgroud)