如何在 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.