सी ++ में नलप्टर क्या है

Si Mem Nalaptara Kya Hai



C++ में, एक विशिष्ट सूचक मान जिसे a कहा जाता है नल पॉइंटर यह इंगित करने के लिए प्रयोग किया जाता है कि एक सूचक किसी वैध स्मृति स्थान का जिक्र नहीं कर रहा है। C++ 11 मानक या बाद के संस्करण में, इसे 'कीवर्ड' द्वारा दर्शाया गया है। nullptr 'या 0 के निरंतर मान से।

नल पॉइंटर विचार महत्वपूर्ण है क्योंकि यह गलत मेमोरी एक्सेस को रोकने में सहायता करता है, जिसके परिणामस्वरूप अप्रत्याशित रनटाइम त्रुटियां और सॉफ़्टवेयर विफलताएं हो सकती हैं। उस परिदृश्य पर विचार करें जब कोई प्रोग्राम किसी स्मृति पते से पढ़ने या लिखने का प्रयास करता है जो या तो बनाया नहीं गया है या जिसे पहले ही हटा दिया गया है। वह व्यवहार C++ में अपरिभाषित है और इसके परिणामस्वरूप गंभीर रनटाइम समस्याएँ या सुरक्षा दोष हो सकते हैं। एक सूचक अमान्य है और यदि यह शून्य मान से लिंक होता है तो इसे संदर्भित नहीं किया जाना चाहिए। प्रोग्राम टर्मिनेशन, सेगमेंटेशन दोष, या अनधिकृत मेमोरी एक्सेस अनपेक्षित व्यवहार के कुछ उदाहरण हैं जो किसी प्रोग्राम को डीरेफर करने पर हो सकते हैं। नल पॉइंटर .

C++ में नलप्टर का उदाहरण

#शामिल
का उपयोग करते हुए नाम स्थान कक्षा ;
int यहाँ मुख्य ( )
{
नलप्टर_टी पीआई1, पीआई2 ;
अगर ( pi1 >= pi2 )
{
अदालत << 'सूचक 1 सूचक 2 मान से अधिक है' << endl ;
}
अन्य
{
अदालत << 'सूचक 2 सूचक 1 मान से अधिक है' << endl ;
}
चार * चौधरी = pi1 ;
अगर ( चौधरी == nullptr )
अदालत << 'Ch सूचक चर का 0 वें पते के संदर्भ के साथ शून्य मान है' << endl ;
अन्य
अदालत << 'Ch सूचक चर शून्य मान नहीं है, इसका पता संदर्भ के साथ कुछ मूल्य है' << endl ;
वापस करना 0 ;
}

उपरोक्त कोड में, हम दो का उपयोग कर रहे हैं nullptrs और उनकी आपस में तुलना करना। फिर हम सत्यापन के लिए वर्ण सूचक का उपयोग कर रहे हैं nullptr .







उत्पादन



सी ++ में नलप्टर का उपयोग करने के कारण

अशक्त संकेत C++ प्रोग्रामिंग में अक्सर कई कारणों से उपयोग किया जाता है:



1: शुरुआती पॉइंटर्स

जब एक पॉइंटर वेरिएबल घोषित किया जाता है, तो इसे हमेशा एक वैध मेमोरी लोकेशन या a के साथ इनिशियलाइज़ किया जाना चाहिए नल पॉइंटर . जब पॉइंटर को बाद में कोड में एक्सेस किया जाता है, तो यह अघोषित व्यवहार को रोकने में मदद करता है।





2: त्रुटि कोड

कार्य वापस आ सकते हैं अशक्त संकेत त्रुटि कोड के रूप में यह दिखाने के लिए कि वे निर्दिष्ट क्रिया को पूरा करने या मेमोरी आवंटित करने में असमर्थ थे।

3: सूचक की वैधता की पुष्टि करना

डिफ्रेंसिंग से पहले पॉइंटर की वैधता को सत्यापित करना हमेशा एक स्मार्ट विचार होता है। यह कोड की मजबूती को बढ़ाता है और अप्रत्याशित रनटाइम विफलताओं को रोकने में सहायता करता है।



4: बहुरूपता

C++ में, बेस-क्लास पॉइंटर्स जो व्युत्पन्न वर्गों के किसी भी ऑब्जेक्ट को इंगित नहीं करते हैं, द्वारा दर्शाए जाते हैं अशक्त संकेत . यह आमतौर पर बहुरूपी प्रोग्रामिंग में वस्तु-उन्मुख सुविधाओं जैसे विरासत और आभासी कार्यों को संभालने के लिए उपयोग किया जाता है।

अशक्त संकेत लटकने या गैर-प्रारंभिक पॉइंटर्स के साथ भ्रमित नहीं होना चाहिए, यह याद रखना महत्वपूर्ण है। Uninitialized पॉइंटर्स मेमोरी में किसी भी पते की ओर इशारा कर सकते हैं क्योंकि उन्हें किसी वैल्यू के साथ इनिशियलाइज़ नहीं किया गया है। दूसरी ओर, डैंगलिंग पॉइंटर्स वे हैं जो अमान्य या पहले से ही हटाए गए मेमोरी क्षेत्रों को संदर्भित करते हैं। C++ प्रोग्रामिंग में, डैंगलिंग पॉइंटर्स, और अनइनिशियलाइज़्ड पॉइंटर्स दोनों में रनटाइम समस्याओं के परिणाम की क्षमता होती है।

सी ++ में नलप्टर का उपयोग करने के लाभ

ए का उपयोग करने के कई फायदे हैं nullptr .

1: सुरक्षा

क्योंकि nullptr NULL की तुलना में अधिक टाइप-सुरक्षित है, इसका उपयोग इसके बजाय किया जाना चाहिए। जबकि NULL को शून्य मान के साथ पूर्णांक स्थिरांक के रूप में परिभाषित किया गया है, nullptr एक सूचक शाब्दिक है जिसे केवल सूचक प्रकार में परिवर्तित किया जा सकता है और किसी अन्य प्रकार के लिए नहीं।

2: उपयोगिता

C++ प्रोग्रामिंग में, उपयोग करने के कई तरीके हैं नल पॉइंटर . पॉइंटर्स को इनिशियलाइज़ करने के लिए, फंक्शन कॉल्स को पैरामीटर्स भेजें, या फ़ंक्शंस से पॉइंटर वैल्यूज़ लौटाएँ, उदाहरण के तौर पर, इसके कुछ संभावित उपयोग हैं। इसका उपयोग यह निर्धारित करने के लिए भी किया जा सकता है कि फ़ंक्शन कॉल या क्रिया ने वैध सूचक मान उत्पन्न किया है या नहीं।

3: डायनेमिक मेमोरी आवंटन

डायनेमिक मेमोरी एलोकेशन a के सबसे लोकप्रिय उपयोगों में से एक है नल पॉइंटर . सी ++ में नए ऑपरेटर का उपयोग करके गतिशील स्मृति आवंटन पूरा हो गया है। नई विधि को लागू करने पर, ताजा जेनरेट की गई वस्तु के लिए एक सूचक वापस आ जाता है। यदि किसी भी कारण से आवंटन विफल हो जाता है, जैसे कि पर्याप्त मेमोरी न होना, NULL को वापस भेज दिया जाता है। नतीजतन, आवंटन सफल रहा यह सुनिश्चित करने के लिए सूचक का उपयोग करने से पहले वापसी मूल्य को सत्यापित करना महत्वपूर्ण है।

निष्कर्ष

नल पॉइंटर सी ++ प्रोग्रामिंग में एक महत्वपूर्ण विचार है जो यह दिखाने के लिए एक तंत्र देता है कि स्मृति में एक पता गुम है। डेवलपर्स सॉफ्टवेयर क्रैश और अन्य मुद्दों को नियोजित करके रोक सकते हैं अशक्त संकेत यह सुनिश्चित करने के लिए कि उनके एप्लिकेशन गलत मेमोरी पतों तक पहुँचने का प्रयास नहीं करते हैं। इसलिए, प्रोग्रामर के लिए यह समझना आवश्यक है कि कैसे अशक्त संकेत उपयोग किया जाना चाहिए और अपने कार्यक्रमों में ऐसा कुशलतापूर्वक करने के लिए किया जाना चाहिए।