1

Тема: Використання двовимірних динамічних масивів в класах

Всім привіт,вивчаю С++ на ООП в університеті.Зіткнувся з такою проблемою:мені потрібно створити двовимірний динамічний масив в класі і в нього потім вписати сторони трикутника. Масив я створив,дані вводяться і опрацьовуються, але при завершені роботи програми,компілятор повідомляє про помилку:HEAP CORRUPTION DETECTED:after normal block(#153)at ...
Сподіваюся хтось допоможе мені вирішити цю проблему.Буду вдячний за допомогу.

#define _USE_MATH_DEFINES
#include <iostream>
#include <math.h>
#include <stdlib.h>

class Triangle {
private:
    int n;
    int** sides;
    double** eagles;
    int* perimeter = new int[n];
    double* area = new double[n];
public:
    
    Triangle() {
        std::cout << "Введіть кількість трикутників:";
        std::cin >>n;
        sides = new int* [n];
        eagles = new double* [n];
         for (int i = 0; i < n; i++) {
             sides[i] = new int[3];
             eagles[i] = new double[3];
         }
    }
    int GetTriangle();
    void ChangeData();
    void PrintTriangleInfo();
    void AnglesPerimeterAndArea();
    ~Triangle() {
        delete[] perimeter;
        delete[] area;
        for (int i = 0; i < n; i++) {
            delete[] sides[i];
            delete[] eagles[i];
        }
        delete[] sides;
        delete[] eagles;
        std::cout << "\nСпрацював деструктор.\n";
    }
};

int main(void) {
    system("chcp 1251");
    Triangle triangle;
    triangle.GetTriangle();
    triangle.AnglesPerimeterAndArea();
    triangle.PrintTriangleInfo();
    triangle.ChangeData();
    return 0;
}

2

Re: Використання двовимірних динамічних масивів в класах

Вітаю.
Схоже, десь ви вилазите за межі масивів і псуєте технічні дані купи, а коли намагаєтеся видалити, то програма падає.