Topics Covered

  1. Simple and Dynamic Arrays (1D & 2D)
  2. Enums (Enumerations)
  3. Multiple Files (Modularity)
  4. Hierarchy & Its Types
  5. Association

1. Multi-Dimensional Arrays

Static Multi-Dimensional Array

A multi-dimensional array is an array of arrays. In a 2D array, data is stored in a tabular format (rows and columns).

#include <iostream>
using namespace std;

int main() {
    int arr[][3] = {10, 20, 30, 40, 50, 60};
    for (int i = 0; i < 2; i++)
        for (int j = 0; j < 3; j++)
            cout << arr[i][j] << ",";
    cout << endl;
    return 0;
}

Dynamic Memory Allocation for 2D Arrays

Using array of pointers

int main() {
    int *arr[2][3];
    for (int i = 0; i < 2; i++)
        for (int j = 0; j < 3; j++)
            arr[i][j] = new int(i + j);

    for (int i = 0; i < 2; i++)
        for (int j = 0; j < 3; j++)
            cout << *(arr[i][j]) << ",";
    cout << endl;

    for (int i = 0; i < 2; i++)
        for (int j = 0; j < 3; j++)
            delete arr[i][j];
    return 0;
}

Using Double Pointer

int main() {
    int **arr = new int *[2];
    arr[0] = new int[3]{10, 20, 30};
    arr[1] = new int[3]{40, 50, 60};

    for (int i = 0; i < 2; i++)
        for (int j = 0; j < 3; j++)
            cout << arr[i][j] << ",";
    cout << endl;

    delete[] arr[0];
    delete[] arr[1];
    delete[] arr;
    return 0;
}

💡 Key Takeaways: