C++/Перегрузка операций

Matrix operator /(Matrix& obj) {
    int k = 0;
    float* X3;
    float* X2;
    float s1, s2;
    
    X2 = new float [n * m];
    X3 = new float [n * m];

    if (n > obj.get_n()) {
        n = obj.get_n();
    }

    if (m > obj.get_m()) {
        m = obj.get_m();
    }
    for (int j = 0; j < m; j++) {
        for (int i = 0; i < n; i++) {
            s1 = sr((X + i * m + j), m);
            s2 = sr((X2 + i * m + j), m);

            if (s1 > s2) {
                k++;
            }
        }
    }

    if (k > 0) {
        int z = 0;
        X3 = new float [k];
        for (int j = 0; j < k; j++) {
            for (int i = 0; i < k; i++) {
                *(X3 + k * m + j);
            }
        }

        for (int j = 0; j < m; j++) {
            for (int i = 0; i < n; i++) {
                s1 = sr((X + i * m + j), m);
                s2 = sr((X2 + i * m + j), m);

                if (s1 > s2) {
                    *(X3 + z * m + j) = *(X + i * m + j);
                    z++;
                }
            }
        }
    }
    else {
        X3 = X2;
        k = obj.get_n();
        m = obj.get_m();
    }

    Matrix *x;
    x = new Matrix(X3, k, m);


    return *x;
}

в М3 переносятся строки М1, со средним арифметическим, большим среднего арифметического соответствующих строк М2. Если таких строк нет, то М3=М2 Происходит заполнением мусора или же не срабатывает вовсе. Моя получившаяся матрица М2 уже имеет строки среднее арифметическое которых меньше матрицы М1 Т.е должна используя этот оператор просто попадать в исключение и приравнивать новую матрицу к М1 или же переписать всё же строки подходящие. Помогите , скажите что не так делаю , почему выводит мусор?


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