【发布时间】:2016-08-21 19:09:50
【问题描述】:
每次我首先为二维数组分配内存时,我都会创建一个 int** 数组,然后使用 for 为每个元素分配内存。
例如:
int ** arr = malloc(N*sizeof(int *));
for(i=0; i< N; i++) arr[i] = malloc(M*sizeof(int));
不可能像这样分配内存:
int ** arr = malloc(N*sizeof(int[M]));
或
int ** arr = malloc(sizeof(int[N][M]));
为了避免for?
【问题讨论】:
-
您使用的是 C 还是 C++?
-
您可以编写自己的函数,其中包含执行此操作所需的一切。除此之外,没有任何语法技巧可以使它成为可能。
-
另见this answer。
标签: arrays c multidimensional-array malloc