我正在尝试用初始化程序列表初始化一个动态声明的数组,但是我注意到我必须用GCC提供数组大小,否则就会出错。如果忽略数组大小,尝试同样使用MSVC不会导致任何错误。在使用带有动态数组的初始化程序列表时是否必须提供数组大小?这是实现定义的,这就是为什么这两个编译器都不同的原因吗?int *array { new int [3] {0, 1, 2} }
我正在使用visual studio 2013速成版和MSVC编译器。 在执行以下代码行时,我得到一个错误。using namespace std;{ cin>>n; return 0;
} 它说明表达式必须在我声明数组我搜索并找到了这个c++ array - expression must have a constant value 它说你需要打开一个编译器选项来允许它。
如何在MS Visual C++中启用VLA、C99中定义的可变长度数组或根本不可能的VLA?是的,我知道C++标准是基于C89的,VLA在C89标准中不可用,因此在C++中不可用,但MSVC++也应该是一个C编译器,这一行为可以使用/TC编译器参数(Compile as C Code (/TC也许MSVC++ C编译器只兼容C89,或者我遗漏了一些东西(一些特殊的构造或编译指示/定义)
我一直使用用户在输入中询问其大小的数组,如下所示: int n; int arr[n];我从来没有遇到过这种方法的任何问题,但现在我读了很多文章,指出C++不支持这种语法,因为C++在编译时需要数组大小,或者必须使用new关键字动态生成数组。如果上面的代码是:
由新编译器支持,而不是由旧编译器支持。如
这将是一个新手的问题,但我试着用C语言(不是C++)做一个小练习,我遇到了一些问题。假设我想在一个大小取决于其中一个参数的方法中使用数组:{ // DO STUFF...当我试图将其编译为Visual 2013中的.c文件时,会遇到一个错误,即不允许使用非常量数组大小。编译器的行为如此不同,这是正常的吗?我一直
但是MS C/C++智能感知在显示错误时会出现错误,说明expression must have a constant value C/C++(28) [4, 8]。在googling搜索之后,我发现MSVC还没有实现VLAs。但我无法找到一种方法来抑制这一错误。谁来帮帮我!
Microsoft VSCode v1.63.2代码编辑器