"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या C ++ में अशक्त पॉइंटर्स को हटाना सुरक्षित है?

क्या C ++ में अशक्त पॉइंटर्स को हटाना सुरक्षित है?

2025-05-01 पर पोस्ट किया गया
ब्राउज़ करें:657

] एक सामान्य प्रश्न उठता है: क्या यह एक अशक्त सूचक को हटाने के लिए सुरक्षित है? C का DELETE ऑपरेटर अपने मूल्य की परवाह किए बिना पॉइंटर को हटाने का प्रयास करने से पहले एक चेक करता है। इसलिए, एक अशक्त सूचक को हटाने का प्रयास करने से कोई अपरिभाषित व्यवहार नहीं होगा। यह अभ्यास विकास के दौरान त्रुटियों का पता लगाने और डबल विलोपन से संबंधित किसी भी संभावित मुद्दों को रोकने में मदद कर सकता है। यह डबल विलोपन और अन्य समान मेमोरी भ्रष्टाचार की समस्याओं से बचने में मदद करता है। उदाहरण के लिए, निम्न कोड पर विचार करें:

Is Deleting a NULL Pointer in C   Safe?
int* ptr = new int [10]; हटाएं [] ptr; // सरणी हटाएं ptr = null; // पॉइंटर को NULL

उन्नत विचार

पर सेट करें, कुछ मामलों में, यह हटाने के बाद पॉइंटर को स्वचालित रूप से सेट करने के लिए डिलीट ऑपरेटर के लिए वांछनीय हो सकता है। जबकि C डिफ़ॉल्ट रूप से इसे प्रदान नहीं करता है, एक मैक्रो या कस्टम फ़ंक्शन का उपयोग करके इस व्यवहार को प्राप्त करना संभव है। उदाहरण के लिए, निम्नलिखित काल्पनिक मैक्रो पर विचार करें:

#परिभाषित करें my_delete (x) {DELETE x; x = null;}

इस मैक्रो का उपयोग करते हुए, पिछले उदाहरण से कोड के रूप में लिखा जा सकता है: int* ptr = new int [10]; my_delete (ptr); // सरणी को हटा दें और इन प्रथाओं का पालन करके PTR को NULL

पर सेट करें, डेवलपर्स C अनुप्रयोगों में सुरक्षित और विश्वसनीय पॉइंटर हेरफेर सुनिश्चित कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3