Тема: Транспортування динамічної матриці
Потрібно написати функцію. Я пробую, але все дуже погано, а саме з самою динамікою. Що не так у void transMatrix(int** m, int rows, int cols)?
#include <iostream>
#include <ctime>
using namespace std;
int** createMatrix(int rows, int cols);
void printMatrix(int** m, int rows, int cols);
void randMatrix(int** m, int rows, int cols);
void transMatrix(int** m, int rows, int cols);
int main()
{ 
    int rows, cols;
    cout << "Enter rows and cols: ";
    cin >> rows >> cols;
    int** matrix = createMatrix(rows, cols);
    randMatrix(matrix, rows, cols);
    cout << endl;
    printMatrix(matrix, rows, cols);
    transMatrix(matrix, rows, cols);
    cout << endl;
    printMatrix(matrix, rows, cols);
}
int** createMatrix(int rows, int cols)
{
    int** m = new int* [rows];
    for (int i = 0; i < rows; i++)
    {
        m[i] = new int [cols] {};
    }
    return m;
}
void printMatrix(int** m, int rows, int cols)
{
    if (m == nullptr)
    {
        cout << "Empty matrix!" << endl;
        return;
    }
    cout << "Matrix: " << endl;
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            cout << "\t" << m[i][j];
        }
        cout << endl;
    }
}
void randMatrix(int** m, int rows, int cols)
{
    srand(time(0));
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            m[i][j] = 1 + rand() % 20;
        }
    }
}
void transMatrix(int** m, int rows, int cols)
{
    int** res = new int* [rows];
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            res[i][j] = m[j][i];
        }
        cout << endl;
    }
    m = res;
    delete[]res;
}