Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Here is an example of how to create a 2D array using dynamic memory allocation in C++:

int rows = 5;
int columns = 3;

// Allocate memory for rows
int** arr = new int*[rows];

// Allocate memory for columns for each row
for (int i = 0; i < rows; i++) {
    arr[i] = new int[columns];
}

// Initialize values
for (int i = 0; i < rows; i++) {
    for (int j = 0; j < columns; j++) {
        arr[i][j] = i + j;
    }
}

// Access values
for (int i = 0; i < rows; i++) {
    for (int j = 0; j < columns; j++) {
        std::cout << arr[i][j] << " ";
    }
    std::cout << std::endl;
}

// Free memory
for (int i = 0; i < rows; i++) {
    delete[] arr[i];
}
delete[] arr;

In this example, we allocate memory for rows number of pointers using new int*[rows]. We then use a loop to allocate memory for columns number of integers for each row using new int[columns]. We can then access and modify values using the row and column indices. Finally, we must free the memory allocated for each row and the pointer to the array using delete[].