c++初始化数组,声明大小为一个整数值
c++ initialize array with declared size as a value of an integer
我想使用读取到整数变量中的值初始化一个大小为的数组。我似乎不明白为什么它在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++中不允许使用可变长度数组。你可以在C99上完成。考虑使用C++std::vector作为:
std::vector<int> array(arr_size);
如果必须的话,你可以像数组一样对它进行索引。
解决方法是动态分配此数组,确保完成后删除内存。
int arr_size; //cin max value for lets say number of students or something...
cin >> arr_size;
int *arr = new int[arr_size];
//use the array as needed
delete [] arr;
您需要变量长度数组(VLA),这在C++中是不允许的。C99中允许。
改为使用std::vector<int>
,作为:
int arr_size;
cin >> arr_size;
std::vector<int> array(arr_size);
相关文章:
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 当我们从/tp地址中添加/减去一个整数时会发生什么
- 如何将一个数组值合并为一个整数c++
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 我可以将迭代器递增一个整数吗?
- 有没有办法生成一个包含平方的序列,这些平方加起来就是一个整数平方?
- 为什么将两个浮点数相加会得到一个整数C++?
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 给枚举一个整数,并在 C++ 中将其相关值作为字符串获取
- 按升序输出整数时,将最后一个整数放在新行上
- 编写一个程序,提示用户输入一个整数,然后输出数字的单个数字和数字的总和
- 给定一个整数 N>0,区间 [0, 2^N) 中有多少个整数正好有 N-1 个设置位?编写一个返回正确答案的简短函数
- 给定一个整数,将其表示为平方和
- c++interpret_cast是一个整数
- 以最少的步骤将给定整数转换为另一个整数
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 我需要将字符串(例如 A5)转换为一个字符串 (A) 和一个整数 (5)
- 如何交替从文件中获取一行数据和一个整数?
- 如何让这个C++代码从用户那里读取五个整数而不是一个整数?