首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中使用用户输入变量声明数组大小。不同IDE的结果不同?

在C++中使用用户输入变量声明数组大小。不同IDE的结果不同?
EN

Stack Overflow用户
提问于 2016-12-02 09:30:01
回答 1查看 214关注 0票数 1

我需要创建一个程序,用户输入所需的数组大小,然后C++代码创建它,然后允许数据进入它。

这在代码块IDE中有效,但在VisualStudioCommunity2015中不起作用

当我将下面的代码放在CodeBlocks版本13.12中时,它可以工作

代码语言:javascript
运行
复制
#include<iostream>
using namespace std;

int main()
{
    int count;
    cout << "Making the Array" << endl;
    cout << "How many elements in the array " << endl;
    cin >> count;
    int flex_array[count];
    for (int i = 0; i < count; i = i + 1)
    {
        cout << "Enter the " << i << " term " << endl;
        cin >> flex_array[i];
    }

    for (int j = 0; j < count; j = j + 1)
    {
        cout << "The " << j << " th term has the value " << flex_array[j] << endl;
    }
    return 0;
}

但是,如果在Visual 2015中输入相同的代码(即14.0.25425版本),则会得到以下错误:

表达式必须具有常量值。

知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-02 09:32:17

C++没有变长阵列。尽管有些编译器实现是作为扩展,但它仍然不是C++语言的标准特性,也不是可移植的。

如果您想要运行时变量长度数组,请使用std::vector

代码语言:javascript
运行
复制
std::vector<int> flex_array(count);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40928785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档