Cion和C99标准版不能使用可变长度数组吗? [英] Variable length arrays not possible w CLion and C99 Standard?
本文介绍了Cion和C99标准版不能使用可变长度数组吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直很高兴地与Clion一起编写代码,在使用C99标准的同时为大学创建一个项目。从今天起,数组声明的可变长度将不起作用。有谁知道为什么吗? 代码:
int main() {
// to allow debugging with CLION
setbuf(stdout, 0);
int number = 5;
int myarray[number];
return 0;
}
CMakeLists.txt
project(PG1 C)
set(CMAKE_C_STANDARD 99)
add_executable(PG1 main.c ...)
错误为:
C:...PG1main.c(10): error C2057: Constant value required C:...PG1main.c(10): error C2466: Declaration of array with constant size 0 not possible C:...PG1main.c(10): error C2133: "myarray": unknown size NMAKE : fatal error U1077: "C:PROGRA~2MICROS~22019BUILDT~1VCToolsMSVC1427~1.291inHostx86x86cl.exe": Return-Code "0x2" Stop. NMAKE : fatal error U1077: ""C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.27.29110inHostX86x86 make.exe"": Return-Code "0x2" Stop. NMAKE : fatal error U1077: ""C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.27.29110inHostX86x86 make.exe"": Return-Code "0x2" Stop. NMAKE : fatal error U1077: ""C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.27.29110inHostX86x86 make.exe"": Return-Code "0x2" Stop.
推荐答案
Clion正在使用MS Visual Studio 2019作为基础编译器。MSVC不是完全兼容的C编译器,尤其是它不支持可变长度数组。
您必须使用GCC或clang才能获得对VLA的支持。
这篇关于Cion和C99标准版不能使用可变长度数组吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文