(C) N x N 零数组

(C) N x N Array of zeros

我是 C 的新手,想创建一个 N x N 的零矩阵(即每个元素都为零)。 N为整数。

使用 MATLAB 我设法使用代码生成了这样一个数组: Array = zeros(N);

但是,在 C 中,我们如何使用最少的代码行生成这样的数组?

提前致谢。

随便写

T matrix[N][N] = { 0 };

其中 T 是某种类型说明符,例如 int.

如果 N 是整数常量表达式,则允许这样的初始化。

否则你需要写

#include <string.h>

//...

T matrix[N][N];
memset( matrix, 0, sizeof( matrix ) );

您可以使用通常在堆上分配内存的 calloc 函数分配内存(如果 Nlarge,这很好):

#include <stdlib.h>
//...
int(*dyn)[N] = calloc(N, sizeof *dyn);
// use dyn
free(dyn);