new delete operators c with examples
C ++ में सभी नए / डिलीट ऑपरेटर्स के बारे में जानें।
हमने अपने पहले के ट्यूटोरियल्स में C ++ में वैरिएबल और स्टैटिक ऐरे पहले ही देख लिए हैं।
जहां तक चर और सरणियों को आवंटित की गई स्मृति का संबंध है, यह स्थिर मेमोरी है जो संकलक द्वारा डेटा प्रकार (चर के मामले में) और सरणियों के लिए प्रदान किए गए आयामों के आधार पर आवंटित की जाती है।
संकलक द्वारा आवंटित मेमोरी स्टैक पर आवंटित की जाती है। लेकिन ज्यादातर मामलों में, हमें उस मेमोरी की सही मात्रा के बारे में पता नहीं हो सकता है जिसकी हमें ज़रूरत है।
=> लोकप्रिय सी ++ प्रशिक्षण श्रृंखला के माध्यम से यहां पढ़ें।
हम जो करना चाहते हैं उसे आवंटित करें और जितनी चाहें उतनी मेमोरी को डी-आवंटित करें और जब चाहें और जैसे चाहें। यह स्मृति को गतिशील रूप से आवंटित करके किया जाता है। स्थिर आवंटन के विपरीत, डायनामिक रूप से आवंटित मेमोरी ढेर पर आवंटित की जाती है।
डायनेमिक मेमोरी एलोकेशन उपयोगी है क्योंकि हम वैरिएबल साइज मेमोरी को आवंटित कर सकते हैं जिसे हम कंपाइलर मेमोरी के साथ प्राप्त नहीं कर सकते हैं। हमारे पास आवश्यकता होने पर मेमोरी आवंटित करने का लचीलापन होता है और जब हमें इसकी आवश्यकता नहीं होती है, तब इसे आवंटित करते हैं।
लेकिन इन उपयोगों के अलावा, हमें यह भी ध्यान में रखना होगा कि गतिशील रूप से आवंटित मेमोरी के मामले में, यह उपयोगकर्ता की मेमोरी को डी-आवंटित करने की जिम्मेदारी है। यदि हम मेमोरी को डी-आबंटित करना भूल जाते हैं, तो यह एक मेमोरी लीक का कारण बनता है जिसमें प्रोग्राम समाप्त होने तक मेमोरी को डीलिट नहीं किया जाता है।
इसके परिणामस्वरूप बहुत अधिक मेमोरी का उपयोग किया जा सकता है और इस प्रकार गंभीर अड़चनें पैदा होती हैं।
आप क्या सीखेंगे:
- गतिशील मेमोरी आवंटन
- 'नया' ऑपरेटर
- Arrays के साथ 'नए' ऑपरेटर का उपयोग करना
- डिलीट ऑपरेटर
- निष्कर्ष
- अनुशंसित पाठ
गतिशील मेमोरी आवंटन
C भाषा डायनामिक रूप से आवंटित करने के लिए language Malloc ’, oc calloc’ और oc realloc ’फ़ंक्शन का उपयोग करती है। इन कार्यों के साथ गतिशील रूप से आवंटित मेमोरी को डी-आवंटित करने के लिए, यह 'फ्री' फ़ंक्शन कॉल का उपयोग करता है। C ++ लैंग्वेज, C भाषा से इन कार्यों को मेमोरी को आवंटित / डी-आवंटित करने के लिए भी समर्थन करती है।
इन कार्यों के अलावा, C ++ दो नए ऑपरेटरों का परिचय देता है जो गतिशील मेमोरी को प्रबंधित करने के लिए अधिक कुशल हैं। स्मृति को आवंटित करने के लिए ये ‘नए’ संचालक हैं और स्मृति के आवंटन के लिए operator हटाएं ’संचालक हैं।
इस ट्यूटोरियल में, हम C ++ भाषा में नए और डिलीट ऑपरेटर्स के बारे में अधिक जानेंगे।
'नया' ऑपरेटर
'नया' ऑपरेटर एक चर पर या किसी अन्य इकाई के लिए मेमोरी आवंटित करता है।
'नया' ऑपरेटर का सामान्य सिंटैक्स है:
pointer_variable_of_data_type = new data type;
ऊपर उल्लिखित डेटा प्रकार C ++ द्वारा समर्थित कोई भी मान्य डेटा प्रकार हो सकता है। यह एक अंतर्निहित डेटाटाइप या कक्षाओं और संरचनाओं सहित किसी भी उपयोगकर्ता-परिभाषित डेटा प्रकार हो सकता है।
उदाहरण के लिए,
सबसे अच्छा मुफ्त फ़ायरवॉल क्या है
int *ptr = NULL; ptr = new int();
उपर्युक्त उदाहरण में, हमने एक सूचक चर ’ptr’ को पूर्णांक घोषित किया है और इसे शून्य करने के लिए प्रारंभ किया है। फिर 'नए' ऑपरेटर का उपयोग करके हम मेमोरी को 'ptr' वेरिएबल में आवंटित करते हैं। यदि स्मृति ढेर पर उपलब्ध है, तो दूसरा कथन सफल होगा। यदि कोई मेमोरी उपलब्ध नहीं है, तो नया ऑपरेटर 'std :: bad_alloc' अपवाद फेंकता है।
इसलिए यह जाँचना बेहतर है कि प्रोग्राम में इस चर या इकाई का उपयोग करने से पहले मेमोरी को नए ऑपरेटर द्वारा सफलतापूर्वक आवंटित किया गया है या नहीं।
हम निम्न प्रकार से नए ऑपरेटर का उपयोग करके वैरिएबल को इनिशियलाइज़ कर सकते हैं:
ptr = new int(10);
उपरोक्त उदाहरण में, सूचक चर 'ptr' नए ऑपरेटर का उपयोग करके आवंटित मेमोरी है और उसी समय, असाइन किया गया मान 10. है। यह अभी तक C ++ में आरंभीकरण का एक और तरीका है।
Arrays के साथ 'नए' ऑपरेटर का उपयोग करना
फिर भी 'नए' ऑपरेटर का एक और उपयोग सरणियों के लिए मेमोरी आवंटित कर रहा है। यहां हम सरणी के लिए आवंटित किए जाने वाले तत्वों की संख्या निर्दिष्ट करते हैं।
'नए' ऑपरेटर का उपयोग करके सरणी तत्वों को आवंटित करने का एक उदाहरण नीचे दिया गया है:
जार फ़ाइल कैसे निष्पादित करें
int* myarray = NULL; myarray = new int(10);
यहां, नया ऑपरेटर पॉइंटर वैरिएबल मायरे के 10 प्रकार के निरंतर तत्वों को आवंटित करता है और पॉइंटर को मायार्रे के पहले तत्व पर लौटाता है।
डिलीट ऑपरेटर
नए ऑपरेटर का उपयोग करके गतिशील रूप से आवंटित मेमोरी को प्रोग्रामर द्वारा स्पष्ट रूप से मुक्त किया जाना है। इस उद्देश्य के लिए, हमें 'हटाएं' ऑपरेटर के साथ प्रदान किया जाता है।
डिलीट ऑपरेटर का सामान्य सिंटैक्स है:
delete pointer_variable;
तो हम ऊपर दिए गए ptr वैरिएबल के लिए आवंटित मेमोरी को निम्न प्रकार से मुक्त कर सकते हैं:
delete ptr;
यह कथन स्मृति पूल के लिए 'ptr' वापस आबंटित मेमोरी को मुक्त करता है।
हम एरियर्स को आवंटित मेमोरी को खाली करने के लिए डिलीट ऑपरेटर का भी उपयोग कर सकते हैं।
उदाहरण के लिए,ऊपर दिए गए सरणी मायार को आवंटित स्मृति को निम्नानुसार मुक्त किया जा सकता है:
delete() myarray;
डिलीट ऑपरेटर के साथ उपयोग किए जाने वाले सबस्क्रिप्ट ऑपरेटर पर ध्यान दें। ऐसा इसलिए है, क्योंकि हमने तत्वों की सरणी आवंटित की है, हमें सभी स्थानों को खाली करने की आवश्यकता है।
इसके बजाय, अगर हमने बयान का इस्तेमाल किया था,
delete myarray;
हम जानते हैं कि मायार्रे सरणी में पहले तत्व को इंगित करता है, इसलिए उपरोक्त कथन केवल सरणी के पहले तत्व को हटा देगा। सबस्क्रिप्ट '()' का उपयोग करके, यह इंगित करता है कि जिस चर को मुक्त किया जा रहा है वह एक सरणी है और आवंटित की गई सभी मेमोरी को मुक्त किया जाना है।
नीचे प्रोग्रामिंग उदाहरण C ++ में नए और हटाए गए ऑपरेटरों के उपयोग को दर्शाता है।
// Example program #include #include using namespace std; int main() { int *ptr = NULL; ptr = new int(); int *var = new int(12); if(!ptr) { cout<<'bad memory allocation'< आउटपुट:
मेमोरी सफलतापूर्वक आवंटित की गई
* पीटीआर = 10
* वर = १२
मायार्रे मान: 1 2 3 4 5 6 7 8 9 10
उसी के लिए स्क्रीनशॉट नीचे दिया गया है।

उपरोक्त कोड उदाहरण में, हमने नए और डिलीट ऑपरेटरों के उपयोग का प्रदर्शन किया है। हमने एक चर, सरणियों के लिए मेमोरी आवंटित करने के लिए 'नए' ऑपरेटर का उपयोग किया है और साथ ही एक मूल्य के साथ दूसरे चर को इनिशियलाइज़ किया है। फिर हम डिलीट ऑपरेटर का उपयोग करके इन संस्थाओं को हटा देते हैं।
निष्कर्ष
जहां तक मानक डेटा प्रकारों का संबंध है, यह C ++ के नए और हटाए गए ऑपरेटरों के बारे में है। हम कक्षाओं और संरचनाओं के रूप में उपयोगकर्ता-परिभाषित डेटा प्रकारों के लिए नए और हटाए गए ऑपरेटरों का भी उपयोग कर सकते हैं।
जब हम C ++ का उपयोग करके ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग सीखते हैं, तो हम ऑब्जेक्ट बनाने के लिए इन ऑपरेटरों के उपयोग के बारे में अधिक जानेंगे।
=> यहाँ सी ++ शुरुआती गाइड पर एक नज़र डालें।
अनुशंसित पाठ
- यूनिक्स शैल स्क्रिप्ट अंकगणित और बूलियन ऑपरेटर्स उदाहरण
- MongoDB उदाहरणों के साथ दस्तावेज़ को अपडेट और हटाएं
- C ++ ऑपरेटर्स, प्रकार और उदाहरण
- पायथन ऑपरेटर्स
- उदाहरणों के साथ अजगर डेटाइम ट्यूटोरियल
- उदाहरणों के साथ यूनिक्स में कमान काटें
- उदाहरणों के साथ C ++ में बबल सॉर्ट
- यूनिक्स कैट कमांड सिंटैक्स, उदाहरण के साथ विकल्प