How to dynamically allocate matrix in C++

1 Answer

0 votes
#include <iostream>

constexpr int ROW = 2;
constexpr int COL = 3;

void initilizeMatrix(int **matrix, int row, int col) {
    srand(time(NULL));
     
    for(auto i = 0; i < row; ++i) {
        for(auto j = 0; j < col; ++j) {
            matrix[i][j] = rand() % 100;
        }
    }
}

void printMatrix(int **matrix, int row, int col) {
    for(auto i = 0; i < row; ++i) {
        for(auto j = 0; j < col; ++j) {
            std::cout << matrix[i][j] << "  ";
        }
        std::cout << "\n";
    }
}

int **allocateMatrix(int row, int col) {
    int **matrix = new int*[row];
    
    for(int i = 0; i < row; i++) {
        matrix[i] = new int[col]{0};
    }
    return matrix;
}

void freeMatrix(int **matrix, int row) {
    for(int i = 0; i < row; i++) {
        delete matrix[i];
    }
    delete [] matrix;
}

int main() {
    int **matrix = allocateMatrix(ROW, COL);

    initilizeMatrix(matrix, ROW, COL);

    printMatrix(matrix, ROW, COL);

    freeMatrix(matrix, ROW);

    return 0;
}



/*
run:

75  99  94  
27  89  88 

*/

 



answered May 7, 2021 by avibootz

Related questions

1 answer 84 views
1 answer 120 views
1 answer 139 views
1 answer 141 views
1 answer 149 views
149 views asked Dec 11, 2020 by avibootz
1 answer 164 views
164 views asked Dec 11, 2020 by avibootz
...