Динамический массив выдает ошибку

Само окно с ошибкой.

    Код:
    Source.cpp
    ``` #include <iostream>
    #include "mass.h"

    using namespace std;

    int main()
    {
        int g = 0;
        while (g<5||g>20) {
            cin >> g;
        }
        mass q(g);
        q.callmass();
    } ```



    mass.cpp
    ``` #include <iostream>
    #include <iomanip>
    #include "mass.h"

    using namespace std;

    void mass::callmass()
    {
        for (int i = N - 1; i >= 0; i--)
        {
            cout << setw(5) << arr2[i];
        }
        delete [] arr2;
    } ```


    mass.h
    ``` #ifndef MASS_H
    #define MASS_H

    class mass
    {
    public:
        int* arr2 = new int[N];
        int N = 0;
        mass(int Q)
        {
            N = Q;
            int* arr1 = new int[N];
            for (int i = 0; i < N; i++)
            {
                arr1[i] = i * i;
            }
            for (int i = 0; i < N; i++)
            {
                arr2[i] = arr1[i];
            }
            delete [] arr1;
        };
        void callmass();
    };
    #endif ```

Ответы (1 шт):

Автор решения: user7860670

Для инициализации поля int* arr2 = new int[N]; будет использовано неинициализированное значение N.

→ Ссылка