【发布时间】:2021-04-03 16:58:33
【问题描述】:
我尝试过这种方式,但我不知道这是否是最好的方法:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ROW 5
#define COL 5
int *matrix;
int main(int argc, const char * argv[])
{
matrix = malloc(ROW * COL * sizeof(int));
memset(matrix, 0, ROW * COL * sizeof(int));
return 0;
}
【问题讨论】:
-
更具体地说明您担心您的解决方案可能“不是最佳”的原因。
-
我有疑问是因为我见过一些解决方案,其中每列都分配有 malloc 并使用 memset 初始化(在 for 循环中)。
-
@link23 如果数组在所有维度上的大小都相同,那么您不妨分配一个一维数组并做一些简单的数学运算以获得正确的索引。
-
@Cheatah:1. OP 已经在这样做了。 2.即使不同维度的尺寸不相同,这也成立。
标签: arrays c matrix multidimensional-array dynamic-memory-allocation