让用户指定数组大小在XCode中起作用,但不会';visualstudio中的t 这是我为C++作业编写的代码的一部分,让用户指定数组大小。出于某种原因,它在XCode中对我有效,但在Visual Studio中对我的导师无效,我损失了15分:\ int variableArraySize; cout << "How long is your array?" << endl; cin >> variableArraySize; int const constArraySize = variableArraySize; int myArray[constArraySize]; int变量数组化; 不能进行变量分析; int const constrarySize=变量arraysize; int myArray[constrarySize];

让用户指定数组大小在XCode中起作用,但不会';visualstudio中的t 这是我为C++作业编写的代码的一部分,让用户指定数组大小。出于某种原因,它在XCode中对我有效,但在Visual Studio中对我的导师无效,我损失了15分:\ int variableArraySize; cout << "How long is your array?" << endl; cin >> variableArraySize; int const constArraySize = variableArraySize; int myArray[constArraySize]; int变量数组化; 不能进行变量分析; int const constrarySize=变量arraysize; int myArray[constrarySize];,c++,arrays,xcode,visual-studio,constants,C++,Arrays,Xcode,Visual Studio,Constants,为什么会这样?你认为我应该告诉她提高我的成绩还是我的错,因为我们应该使用VisualStudio? < P>你的问题是在标准C++中,数组大小必须在编译时知道。一些编译器供应商,如XCode,允许您将所做的作为非标准扩展,而其他编译器供应商则不允许(MSV)。这就是为什么它可以在XCode中工作,但不能在MSV中工作 如果您想在运行时创建数组,那么我建议您使用< P> C++标准不包括对可变长度数组(VLA)的支持。有些编译器包含对标准的扩展,允许VLA,但Visual Studio不是其中之一

为什么会这样?你认为我应该告诉她提高我的成绩还是我的错,因为我们应该使用VisualStudio?

< P>你的问题是在标准C++中,数组大小必须在编译时知道。一些编译器供应商,如XCode,允许您将所做的作为非标准扩展,而其他编译器供应商则不允许(MSV)。这就是为什么它可以在XCode中工作,但不能在MSV中工作


如果您想在运行时创建数组,那么我建议您使用

< P> C++标准不包括对可变长度数组(VLA)的支持。有些编译器包含对标准的扩展,允许VLA,但Visual Studio不是其中之一

在这种情况下,有一个简单的选择:

这是一个很好的例子,说明了为什么人们应该注意非标准语言扩展并避免使用它们。如果它不在标准中,则无法计算移植软件时出现的功能

您如何知道某个功能是否为标准功能?恐怕要读很多书

<> > C++标准的副本是一种可能性(并且当你超过学习曲线时,一些有趣的阅读),但通常更容易访问的是网站,比如用支持功能的标准修订来注释功能描述。p> 避免使用特定于编译器的文档。例如,从MSDN学习C++导致堆栈溢出问题,例如“为什么不<代码> StryMyString;< /COD>编译?”< /P>