我想创建一个具有可变大小的矩阵(相同的高度和宽度),这意味着高度和宽度取决于变量。现在我知道如何使用malloc / calloc保留存储,但我无法弄清楚如何使用malloc来创建二维数组。 或者有不同的方法来解决我的问题? 提前谢谢!
答案 0 :(得分:0)
我无法弄清楚如何使用malloc来创建二维数组。
// Example of a 2D array. malloc() cannot create this.
int TwoD[height][width];
malloc()
可以为 int
,数组等分配内存。它无法创建数组。 malloc()
的结果是一个指针。所以从指针开始到2D数组。
// C99, C11
int (*a)[height][width];
为a
a = malloc(sizeof *a);
assert(a); // Insure NULL was not retuned.
使用内存
(*a)[0][0] = 1;
(*a)[0][1] = 2;
// ...
(*a)[height-1][width-1] = height*width;
完成后免费
free(a);