【发布时间】:2015-01-18 22:21:59
【问题描述】:
我正在尝试用 C 语言编写一个以矩阵为参数的函数。
我只会在运行时知道矩阵有多少元素(但是是 NxN 矩阵)。
因此我想知道是否有保证空间总是连续的,因此我只能询问指向第一个元素的指针。我这样声明我的矩阵:
int nodo;
scanf("%d", &nodo);
int distancias[nodo][nodo];
【问题讨论】:
-
c 数组是连续的。
-
它是连续的。但要小心你正在使用的构造。如果
nodo变得太大,可变长度数组 (VLA) 可能会很快耗尽您的堆栈。 -
C11 编译器也是 not required 以完全支持 VLA。它们在 C99 下是必需的,恕我直言,这有点奇怪。结果是 VLA 代码理论上可能在将来无法编译,具体取决于您选择的编译器。