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