gpt4 book ai didi

c++使用声明的大小初始化数组作为整数值

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:08:45 28 4
gpt4 key购买 nike

我想使用读入整型变量的值初始化一个数组。我似乎无法理解为什么它在 Dev-C++ 中有效,但在 Turbo C++ 中无效。这是有助于使事情变得清晰的代码

int arr_size; //cin max value for lets say number of students or something...
cin >> arr_size;
int array[arr_size]; // declares array with size (assume 10 or 100) with range 0 to 9 or 0-99

编译器在 Turbo C++ 中显示错误(我知道这真的很旧,但不幸的是我的学校使用它)。 Dev-C++ 和代码块没有。

为什么会这样?我知道“正如他们在某些书中定义的那样”将数组大小与 int 值相同是一种不好的做法,但是在 Turbo C++ 中是否有解决此问题的方法?我想知道为什么会发生错误以及如何解决它...非常感谢!

最佳答案

C++ 标准只允许使用常量表达式 来调整数组的大小。 (但是,某些编译器可能会将其作为非标准语言扩展提供。)

您可以改用 std::vector:

std::vector<int> array(arr_size);

或者您可以手动动态分配内存:

int *const array = new int[arr_size];

...

delete [] array; // Remember to delete when you're done

关于c++使用声明的大小初始化数组作为整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6330695/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com