new ऑपरेटर का उपयोग हीप पर मेमोरी आवंटन के अनुरोध को दर्शाता है। यदि पर्याप्त मेमोरी उपलब्ध है, तो यह मेमोरी को इनिशियलाइज़ करता है और इसका पता पॉइंटर वेरिएबल को लौटाता है।
new ऑपरेटर का उपयोग केवल तभी किया जाना चाहिए यदि डेटा ऑब्जेक्ट को मेमोरी में तब तक रहना चाहिए जब तक delete कॉल न किया जाए। अन्यथा यदि new ऑपरेटर का उपयोग नहीं किया जाता है, तो ऑब्जेक्ट स्वचालित रूप से नष्ट हो जाता है जब यह स्कोप से बाहर चला जाता है। दूसरे शब्दों में, new का उपयोग करने वाले ऑब्जेक्ट्स को मैन्युअली क्लीन अप किया जाता है जबकि अन्य ऑब्जेक्ट्स स्कोप से बाहर जाने पर स्वचालित रूप से क्लीन हो जाते हैं।
new ऑपरेटर का सिंटैक्स निम्नलिखित है।
pointer_variable = new datatype;
उपरोक्त सिंटैक्स में, pointer_variable वह पॉइंटर वेरिएबल है जिसे मेमोरी पता लौटाया जाता है और datatype मेमोरी के लिए बिल्ट-इन डेटा टाइप है।
new ऑपरेटर के उपयोग को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है।
उदाहरण
#include <iostream> using namespace std; int main () { int *ptr1 = NULL; ptr1 = new int; float *ptr2 = new float(223.324); *ptr1 = 28; cout << "पॉइंटर वेरिएबल 1 का मान: " << *ptr1 << endl; cout << "पॉइंटर वेरिएबल 2 का मान: " << *ptr2 << endl; delete ptr1; delete ptr2; return 0; } आउटपुट
उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है।
पॉइंटर वेरिएबल 1 का मान: 28 पॉइंटर वेरिएबल 2 का मान: 223.324
अब आइए उपरोक्त प्रोग्राम को समझते हैं।
new ऑपरेटर का उपयोग मेमोरी को इनिशियलाइज़ करने और इसका पता पॉइंटर वेरिएबल ptr1 और ptr2 को लौटाने के लिए किया जाता है। फिर ptr1 और ptr2 द्वारा इंगित मेमोरी लोकेशन्स पर संग्रहीत मान प्रदर्शित किए जाते हैं। अंत में delete ऑपरेटर का उपयोग मेमोरी को फ्री करने के लिए किया जाता है।
इसे दिखाने वाला कोड स्निपेट निम्नलिखित है −
int *ptr1 = NULL; ptr1 = new int; float *ptr2 = new float(223.324); *ptr1 = 28; cout << "पॉइंटर वेरिएबल 1 का मान: " << *ptr1 << endl; cout << "पॉइंटर वेरिएबल 2 का मान: " << *ptr2 << endl; delete ptr1; delete ptr2;