C++ में placement new किसके लिए है और इसका सही उपयोग कैसे करें?
सभी को नमस्ते! मैं C++ सीख रहा हूँ और placement new नामक चीज़ पर ठोकर खाई। सामान्य जीवन में मैं heap में ऑब्जेक्ट बनाने के लिए `new` और arrays के लिए `new[]` का उपयोग करता हूँ। लेकिन यहाँ कुछ अजीब syntax है: `new (pointer) Type`। मैंने पढ़ा कि यह पहले से आवंटित मेमोरी में ऑब्जेक्ट बनाने की अनुमति देता है, न कि नई मेमोरी आवंटित करने की। लेकिन इसकी आवश्यकता क्यों है? क्या हमेशा सामान्य `new` का उपयोग करना आसान नहीं है?\n\nउदाहरण के लिए, मैंने ऐसा कोड देखा:\n```cpp\n#include // placement new के लिए आवश्यक\n\nstruct MyStruct {\n int x;\n MyStruct(int val) : x(val) { std::cout << "Constructor"; }\n ~MyStruct() { std::cout << "Destructor"; }\n};\n\nint main() {\n void* buffer = std::malloc(sizeof(MyStruct));\n MyStruct* p = new (buffer) MyStruct(42); // placement new\n // ...\n p->~MyStruct(); // destructor का स्पष्ट कॉल\n```