DEV Community

Cover image for Dynamic Memory Allocation for NxM (2D) Array Using Pointer | C++
Yash Desai
Yash Desai

Posted on

Dynamic Memory Allocation for NxM (2D) Array Using Pointer | C++

Define class MxN_matrix

#include <iostream>
using namespace std;

class MxN_Matrix
{
    int row, col;
    int *Matrix;

public:
    MxN_Matrix()
    {
        row = 0;
        col = 0;
    }
    ~MxN_Matrix()
    {
        // deallocate memory
        delete[] Matrix;
    }
    void create(int row, int col);

    void print();
};
Enter fullscreen mode Exit fullscreen mode

void create(int row, int col)

void MxN_Matrix::create(int row, int col)
{
    this->row = row;
    this->col = col;

    // Dynamically allocate memory of size row*col
    Matrix = new int[row * col];

    // assign values to allocated memory
    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++)
        {
            cout << "row = " << i << " col = " << j << ": ";
            cin >> *(Matrix + i * col + j);
        }
}
Enter fullscreen mode Exit fullscreen mode

void print()

void MxN_Matrix::print()
{
    cout << "\nMatrix" << endl;
    // print the matrix
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
            cout << *(Matrix + i * col + j) << "\t"; // or (Matrix + i*col)[j])

        cout << endl;
    }
}
Enter fullscreen mode Exit fullscreen mode

int main()

int main()
{
    MxN_Matrix *matrix = new MxN_Matrix();

    matrix->create(2, 3);

    matrix->print();

    delete matrix; // deallocate memory

    return 0;
}
Enter fullscreen mode Exit fullscreen mode

Also available on YouTube

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (1)

Collapse
 
pgradot profile image
Pierre Gradot

You should stop calling new / delete by hand and starting using smart pointers instead: en.cppreference.com/w/cpp/memory

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay