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

C++-এ new এবং delete অপারেটর


new অপারেটর

new অপারেটর হিপে মেমোরি এলোকেশনের জন্য অনুরোধ করে। যদি পর্যাপ্ত মেমোরি উপলব্ধ থাকে, তবে এটি পয়েন্টার ভেরিয়েবলকে মেমোরি ইনিশিয়ালাইজ করে এবং এর অ্যাড্রেস রিটার্ন করে।

C++-এ new অপারেটরের সিনট্যাক্স:

pointer_variable = new datatype;

মেমোরি ইনিশিয়ালাইজ করার সিনট্যাক্স:

pointer_variable = new datatype(value);

ব্লক মেমোরি এলোকেট করার সিনট্যাক্স:

pointer_variable = new datatype[size];

C++-এ new অপারেটরের একটি উদাহরণ:

উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int *ptr1 = NULL;
    ptr1 = new int;
    float *ptr2 = new float(223.324);
    int *ptr3 = new int[28];
    *ptr1 = 28;
    cout << "Value of pointer variable 1 : " << *ptr1 << endl;
    cout << "Value of pointer variable 2 : " << *ptr2 << endl;
    if (!ptr3)
        cout << "Allocation of memory failed\n";
    else {
        for (int i = 10; i < 15; i++)
            ptr3[i] = i + 1;
        cout << "Value of store in block of memory: ";
        for (int i = 10; i < 15; i++)
            cout << ptr3[i] << " ";
    }
    return 0;
}

আউটপুট

Value of pointer variable 1 : 28
Value of pointer variable 2 : 223.324
Value of store in block of memory: 11 12 13 14 15

delete অপারেটর

delete অপারেটর মেমোরি ডি-এলোকেট করতে ব্যবহৃত হয়। ইউজার এই ডিলিট অপারেটর দিয়ে তৈরি করা পয়েন্টার ভেরিয়েবল ডি-এলোকেট করতে পারে।

C++-এ delete অপারেটরের সিনট্যাক্স:

delete pointer_variable;

এলোকেট করা ব্লক মেমোরি ডিলিট করার সিনট্যাক্স:

delete[] pointer_variable;

C++-এ delete অপারেটরের একটি উদাহরণ:

উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int *ptr1 = NULL;
    ptr1 = new int;
    float *ptr2 = new float(299.121);
    int *ptr3 = new int[28];
    *ptr1 = 28;
    cout << "Value of pointer variable 1 : " << *ptr1 << endl;
    cout << "Value of pointer variable 2 : " << *ptr2 << endl;
    if (!ptr3)
        cout << "Allocation of memory failed\n";
    else {
        for (int i = 10; i < 15; i++)
            ptr3[i] = i + 1;
        cout << "Value of store in block of memory: ";
        for (int i = 10; i < 15; i++)
            cout << ptr3[i] << " ";
    }
    delete ptr1;
    delete ptr2;
    delete[] ptr3;
    return 0;
}

আউটপুট

Value of pointer variable 1 : 28
Value of pointer variable 2 : 299.121
Value of store in block of memory: 11 12 13 14 15

  1. C/C++-এ new/delete এবং malloc/free-এর পার্থক্য

  2. C++-এ Lvalues এবং Rvalues কী?

  3. C++-এ ইনক্রিমেন্ট ++ এবং ডিক্রিমেন্ট -- অপারেটর ওভারলোডিং

  4. C++-এ new অপারেটর দিয়ে মেমরি ইনিশিয়ালাইজ করা