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

C++-এ Placement New-এর ব্যবহার (Use of Placement New)

Placement new ব্যবহার করে ইনিশিয়ালাইজড মেমরির ওপর অবজেক্ট কনস্ট্রাক্ট করা যায়। এটি অপ্টিমাইজেশনের জন্য দরকারি (পুনরায় অ্যালোকেশন ছাড়াই অবজেক্ট রিইউজ)।

সিনট্যাক্স

new (address) Type(initializer);

উদাহরণ

#include <iostream>
using namespace std;

int main() {
    int a = 5;
    cout << "a = " << a << endl;
    cout << "&a = " << &a << endl;

    // Placement new: a-এর মেমরিতে নতুন int(10) কনস্ট্রাক্ট
    int *m = new (&a) int(10);

    cout << "\nAfter placement new:" << endl;
    cout << "a = " << a << endl;   // 10
    cout << "m = " << m << endl;     // a-এর ঠিকানা
    cout << "&a = " << &a << endl;
    return 0;
}

আউটপুট

a = 5
&a = 0x60ff18

After placement new:
a = 10
m = 0x60ff18
&a = 0x60ff18

ব্যবহার ক্ষেত্র: মেমরি পুল, কাস্টম অ্যালোকেটর, EASTL, গেম ডেভেলপমেন্ট, রিয়েল-টাইম সিস্টেমে মেমরি ফ্র্যাগমেন্টেশন এড়াতে।

সতর্কতা: পুরানো অবজেক্টের ডিস্ট্রাক্টর ম্যানুয়ালি কল করতে হয় (যদি non-trivial destructor থাকে) এরপর placement new কল করতে হয়।

  1. লিনাক্সে C++-এর জন্য সেরা IDE কী? (আলাদা লেখা)

  2. উইন্ডোজে C++-এর জন্য সেরা IDE কী? (আলাদা লেখা)

  3. C++-এ const কিওয়ার্ড কী?

  4. C#-এ 'new' কীওয়ার্ডের ব্যবহার