Cion和C99标准版不能使用可变长度数组吗? [英] Variable length arrays not possible w CLion and C99 Standard?

查看:0
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆