Не могу понять где ошибка. Прога компилируется, получает значения, работает потом вылетает и пишет: "Segmentation fault (core dumped)"

Эта программа должна решать задачу:

Ввести матрицу. Составить функцию нахождения минимума из четырех чисел. Каждое число является количеством положительных элементов, расположенных от определенного элемента по диагонали вправо-вверх, влево-вниз, влево-вверх, вправо-вниз. Составить новую матрицу из результатов вызовов функций для каждого элемента исходной матрицы. Исходную и результирующую матрицы вывести

Код:

#include <iostream>
using namespace std;
void createNewmass(float **mass, int i, int j, int n, int m) {
int k[4] = {0, 0, 0, 0}, ii = i, jj = j, max;

    while (i != 0 || j != m) {
        i--; j++;
        if (mass[i][j] > 0)
            k[0]++;
    }
    i = ii; j = jj;

    while (i != n || j != m) {
        i++; j++;
        if (mass[i][j] > 0)
            k[1]++;
    }
    i = ii; j = jj;

    while (i != n || j != 0) {
        i++; j--;
        if (mass[i][j] > 0)
            k[2]++;
    }
    i = ii; j = jj;

    while (i != 0 || j != 0) {
        i--; j--;
        if (mass[i][j] > 0)
            k[3]++;
    }

    max = k[0];
    for (i = 0; i < 4; i++)
        if (k[i] > max)
            max = k[i];

cout << max << " ";

}

int main() {
float **mass;
int n, m;
cin >> n >> m;
mass = new float *[n];
    for (int i = 0; i < m; i++)
        mass[i] = new float [m];
for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        cin >> mass[i][j];
for (int i = 0; i < n; i++) {
    cout << endl;
    for (int j = 0; j < m; j++)
        cout << mass[i][j] << " ";
} cout << endl;
for (int i = 0; i < n; i++) {
    cout << endl;
    for (int j = 0; j < m; j++)
        createNewmass(mass, i, j, n, m);
    }

}

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