在C99标准中开始支持可变长数组,即在声明数组时可以用变量来指示数组的大小,而不一定是常量表达式。
看下面的示例程序:
#include <stdio.h>
int main(int argc, char **args) {
int n = 5;
if (argc > 1) {
n = atoi(args[1]);
}
double A[n][n];
typeof(A) B;
printf("sizeof B[%d][%d]: %d\n", n, n, sizeof(B));
return 0;
}
运行结果:
$ gcc main.c -o main
$ ./main
sizeof B[5][5]: 200
$ ./main 10
sizeof B[10][10]: 800
$ ./main 20
sizeof B[20][20]: 3200