相关疑难解决方法(0)

是否始终允许C++使用变量进行数组大小?

出于某种原因,在过去,我记得无法做到这样的事情:

int arraySize;
cin >> arraySize;

int array[arraySize];
Run Code Online (Sandbox Code Playgroud)

但最近,我再次尝试了这一点,并没有引起任何问题.我之前可以发誓这是在我的编译器中引发错误的东西(macOS Sierra,Xcode 8.1).语言中的任何内容都已更新以允许此操作吗? - 我可能完全记错了,这不是以前的问题,但我不确定.我认为必须在编译期间定义数组大小,并且用户无法选择它(这是您实现动态数组的地方).

c++ arrays size dynamic

1
推荐指数
2
解决办法
133
查看次数

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

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

这适用于Code Blocks IDE,但不适用于Visual Studio Community 2015

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

#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 …
Run Code Online (Sandbox Code Playgroud)

c++ arrays vector codeblocks visual-studio-2015

1
推荐指数
1
解决办法
75
查看次数

定义非constexpr大小的数组时没有错误

可能重复:
在C++书籍中,数组绑定必须是常量表达式,但为什么以下代码有效?

我在main()中执行此操作:

int i = 2; //not constant expression
int foo[i]; //no error?
Run Code Online (Sandbox Code Playgroud)

根据我的书,这不会给我一个错误.为什么?

(我在铿锵声3.1)

c++

0
推荐指数
1
解决办法
119
查看次数

用C++分配数组

当我开始用C++编程时,我学会了使用动态内存分配来分配数组大小,如下所示:

int main()
{
    int nArrayLength;

    cout << "Enter an array length: ";
    cin  >> nArrayLength;

    int *nArray = new int[nArrayLength];

    // contents

    delete[] nArray;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我使用mingw32-g ++ // GNU GCC编译器使用Code :: Blocks 12.11尝试了以下代码.

int main()
{
    int nArrayLength;

    cout << "Enter an array length: ";
    cin  >> nArrayLength;

    int nArray[nArrayLength];

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这也很好.

因此,在这种情况下,当更简单的方法也能正常工作时,我为什么要使用动态内存分配?

c++

0
推荐指数
1
解决办法
89
查看次数

标签 统计

c++ ×4

arrays ×2

codeblocks ×1

dynamic ×1

size ×1

vector ×1

visual-studio-2015 ×1