কম্পিউটার টিউটোরিয়াল

C++-এ new ব্যবহার করে ২D অ্যারে ডিক্লেয়ার করা (Dynamic 2D Array)

ডাইনামিক ২D অ্যারে মূলত পয়েন্টারের অ্যারে (array of pointers), যেটির প্রতিটি পয়েন্টার একটি ১D অ্যারে পয়েন্ট করে।

এলোকেশন প্যাটার্ন

int rows = 3, cols = 4;
int** arr = new int*[rows];      // ১. পয়েন্টার অ্যারে
for(int i = 0; i < rows; ++i)
    arr[i] = new int[cols];      // ২. প্রতিটি র‍ো আলাদা আলাদা অ্যালোকেট

ডি-এলোকেশন (রিভার্স অর্ডারে)

for(int i = 0; i < rows; ++i)
    delete[] arr[i];   // প্রথমে প্রতিটি র‍ো
delete[] arr;          // তারপর পয়েন্টার অ্যারে

সম্পূর্ণ উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int rows = 3, cols = 4;
    int** arr = new int*[rows];
    for(int i = 0; i < rows; ++i)
        arr[i] = new int[cols];

    // ব্যবহার
    arr[1][2] = 42;
    cout << arr[1][2] << endl; // 42

    // মেমরি মুক্ত
    for(int i = 0; i < rows; ++i) delete[] arr[i];
    delete[] arr;
    return 0;
}

উন্নত বিকল্প: std::vector<std::vector<int>> বা std::vector<int> (ফ্ল্যাটেনড, index = r*cols + c) বা std::unique_ptr<int[]>। এগুলো অটোমেটিক মেমরি ম্যানেজ করে।

  1. OpenCV-এ C++ ব্যবহার করে উপবৃত্ত আঁকা

  2. OpenCV-এ C++ ব্যবহার করে রেখা আঁকা

  3. সি++ প্রোগ্রাম দিয়ে অন্য প্রোগ্রাম লঞ্চ করা

  4. C++-এ new ব্যবহার করে ডাইনামিক ২D অ্যারে ঘোষণা