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