从用户那里获取数组大小的值
Taking value of Array size from user
我正在为我的大学课程做作业,并在代码中遇到以下问题:
cout << "Enter number of values you want to enter" << endl;
int Arraysize;
cin >> Arraysize;
int input_Arr[Arraysize];
编译器给出一个数组,说明数组大小必须是一个常量。我尝试动态给出数组大小,但这会产生相同的错误。它允许变量作为数组大小的唯一方法是,当变量成为常量时。 你能告诉我从用户那里获取数组大小然后声明该大小的数组的方法是什么? 另外,如果你通过动态内存分配来做到这一点,请在每一步解释你的代码。
可变大小的数组不是标准C++,因此编译器不满意。
您有两种选择:
1( 使用std::vector
,它的大小会自动动态增长。但是,由于这是硬件,因此您可能还不能使用它。
2( 通过使用new
和delete
为数组使用动态内存分配,如下所示:
#include <iostream>
using namespace std;
int main() {
int Arraysize;
cin >> Arraysize;
int *input_Arr = new int[Arraysize];
// Here you have an array called `input_Arr`, of size `Arraysize`, ready to be used (eg filled).
// when you are done with using the array, you must free the dynamic memory
delete [] input_Arr;
return 0;
}
需要您注意的两点是:
int *input_Arr = new int[Arraysize];
它做什么?它动态地为一个名为input_Arr
的数组分配内存,该数组将存储int
。它的大小是Arraysize
.
每次动态分配内存时,它都必须由程序释放。为此,我们使用以下代码:
delete [] input_Arr;
这将删除一个名为input_Arr
的数组。
如果要在C++中使用动态分配,请使用关键字new和删除代码,在这种情况下将是
{
int size;
cin>>size;
int *my_array = new int[size]; //dynamic allocation
...
delete [] my_array; //don't forget to use delete at the end of your code
}
相关文章:
- 如何使用用户输入在C++中正确填充2D数组
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- C ++奇怪的数组由用户输入
- 如何使用用户输入变量制作二维数组?
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 从用户那里获取数组大小的值
- 在 C++ Consol 中的数组中执行用户命令时出现问题
- C++ - 将结构类型的数组传递给用户定义的函数
- 在C++中使用字符数组进行用户输入验证
- 使用STL对用户输入数组进行排序的错误有什么解决方案吗?
- 是否可以创建一个用户定义的文本,将字符串文本转换为 own 类型的数组?
- 在数组中显示第一个元素用户输入
- 从用户那里获得无限量的输入,而不是打印最大的3个,而不使用数组
- 如何将用户输入存储在数组中?
- C++ .我正在尝试通过使用开关内的数组来获取用户输入,但是当我运行代码时,它显示分段错误?
- 将用户输入从 editLine 记录到字符串数组
- 如何将数组传递到函数中,以便用户可以根据需要对"phrases"/数组进行排序
- 堆积或堆叠数组.用户定义的类型难题
- 通过递归创建字符数组(用户输入)