我有这个函数试图在main.So中为数组赋值 . 当我运行它时,它给出输入但在我的欲望输入中它崩溃并说运行失败 . 任何想法我的mystake在哪里?

void insertBombs(int m, int n, int bombs, char **mat) {
int num;
int num1, num2;
mat = (char **) malloc(n * sizeof (char*));
for (int i = 0; i < n; i++)
    mat[i] = (char *) malloc(m * sizeof (char));
for (int j = 0; j < n; j++) {
    for (int i = 0; i < m; i++) {
        mat[j][i] = 'k';

    }
}
for (int i = 0; i < bombs; i++) {
    num1 = rand() % m;
    num2 = rand() % n;
    if (mat[num1][num2] == '*') {
        while (mat[num1][num2] == '*') {
            num1 = rand() % m;
            num2 = rand() % n;
        }
    }
    mat[num1][num2] = '*';
}
}