关于C语言定义数组的问题

书上说C语言不允许用变量动态定义数组大小
比如
scanf("%d", &n);
int a[n][n];
但是写出来是可以运行的,是现在的版本允许了还是其他原因

这个是有的编译系统版本允许,有的编译系统版本不允许
不过按照最早的c语言标准应该是不允许的。

编译器不一样。有的可以,有的不可以。C标准应该是不允许的。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^