如何在 C++ 中使用 for 循环显示动态数组
How to display a dynamic array with a for loop in c++
我正在尝试使用 for 循环显示一个动态数组来检查我的输入,而不使用任何向量(我仍然是初学者,所以我还不知道它是什么意思,它是 class任务)。我也在尝试实现 classes 和对象。这是我的代码:
#include <iostream>
using namespace std;
class Set {
private:
int size;
int* arr = new int[size];
public:
void setArr();
void dispArr();
};
void Set::setArr() {
cout << "Please enter the size of your array: ";
cin >> size;
cout << "\nPlease enter the elements of your array: ";
for (int i = 0; i < size; i++)
cin >> arr[i];
}
void Set::dispArr() {
for (int j = 0; j < size; j++)
cout << arr[j] << "\t";
}
void main()
{
Set myArray;
myArray.setArr();
myArray.dispArr();
}
当我 运行 代码时,有时它可以工作,但大多数时候,它会抛出一个断点错误,没有任何错误代码或解释。有人能帮我弄清楚如何组合动态数组和 classes 吗?
请和谢谢。
您在初始化 size
之前分配 arr
。因此,size
在那个点上有一个不确定的值,它解释了你的程序的不可预测的行为。
解决方案:分配 arr
在 阅读 size
之后。更好的是,使用 std::vector
.
我正在尝试使用 for 循环显示一个动态数组来检查我的输入,而不使用任何向量(我仍然是初学者,所以我还不知道它是什么意思,它是 class任务)。我也在尝试实现 classes 和对象。这是我的代码:
#include <iostream>
using namespace std;
class Set {
private:
int size;
int* arr = new int[size];
public:
void setArr();
void dispArr();
};
void Set::setArr() {
cout << "Please enter the size of your array: ";
cin >> size;
cout << "\nPlease enter the elements of your array: ";
for (int i = 0; i < size; i++)
cin >> arr[i];
}
void Set::dispArr() {
for (int j = 0; j < size; j++)
cout << arr[j] << "\t";
}
void main()
{
Set myArray;
myArray.setArr();
myArray.dispArr();
}
当我 运行 代码时,有时它可以工作,但大多数时候,它会抛出一个断点错误,没有任何错误代码或解释。有人能帮我弄清楚如何组合动态数组和 classes 吗? 请和谢谢。
您在初始化 size
之前分配 arr
。因此,size
在那个点上有一个不确定的值,它解释了你的程序的不可预测的行为。
解决方案:分配 arr
在 阅读 size
之后。更好的是,使用 std::vector
.