c语言
小甲鱼21课作业里int arr;用了这个没有报错但我定义的时候不行,只有把count换成常数才能编译
想问问有什么等效果的方法 本帖最后由 jackz007 于 2021-11-28 21:40 编辑
#include <stdio.h>
int main(void)
{
int count ;
scanf("%d" , & count) ;
int arr ;
}
这个代码在 gcc 下是可以正常编译的。
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>
但是,在 VC2019 下是无法编译的
D:\00.Excise\C>cl x.c
用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.28.29334 版
版权所有(C) Microsoft Corporation。保留所有权利。
x.c
x.c(7): error C2057: 应输入常量表达式
x.c(7): error C2466: 不能分配常量大小为 0 的数组
x.c(7): error C2133: “arr”: 未知的大小
D:\00.Excise\C>
所以,你看到小甲鱼可以,因为他用的编译器是 gcc。解决此问题的方法是用 malloc() 来申请动态存储空间,当然,也可以换用 gcc 编译器。
页:
[1]