मेरा मानना है कि उत्तर नहीं है, कभी भी स्मृति रिसाव की अनुमति न दें, और मेरे पास कुछ कारण हैं जिन्हें मैंने स्पष्ट रूप से नहीं देखा है। यहाँ महान तकनीकी उत्तर हैं, लेकिन मुझे लगता है कि असली उत्तर अधिक सामाजिक / मानवीय कारणों पर टिका है।
(पहले, ध्यान दें कि जैसा कि दूसरों ने उल्लेख किया है, एक सच्चा रिसाव तब होता है जब आपका कार्यक्रम, किसी भी बिंदु पर, स्मृति संसाधनों का ट्रैक खो देता है जो इसे आवंटित किया गया है। सी में, यह तब होता है जब आप malloc()एक पॉइंटर पर जाते हैं और उस पॉइंटर को बिना किए गुंजाइश छोड़ देते हैं। free()प्रथम।)
यहां आपके निर्णय का महत्वपूर्ण क्रुक्स आदत है। जब आप एक भाषा का उपयोग करता है कि संकेत दिए गए हैं, तो आप संकेत का उपयोग करने के लिए जा रहे हैं में कोड एक बहुत । और संकेत खतरनाक हैं; वे आपके कोड में गंभीर समस्याओं के सभी प्रकार को जोड़ने का सबसे आसान तरीका हैं।
जब आप कोडिंग करते हैं, तो कभी-कभी आप गेंद पर जा रहे हैं और कभी-कभी आप थके हुए या पागल या चिंतित होने वाले हैं। उन कुछ विचलित समयों के दौरान, आप ऑटोपायलट पर अधिक कोडिंग कर रहे हैं।ऑटोपायलट प्रभाव एक बंद कोड और एक बड़ी परियोजना में एक मॉड्यूल के बीच अंतर नहीं करता है। उन समयों के दौरान, आपके द्वारा स्थापित की जाने वाली आदतें आपके कोड आधार में समाप्त हो जाएंगी।
तो नहीं, कभी भी स्मृति को उसी कारण से लीक न होने दें, जब आप गलियों को बदल रहे हों तब भी आपको अपने अंधे धब्बों की जांच करनी चाहिए, भले ही आप इस समय सड़क पर एकमात्र कार हों। ऐसे समय के दौरान जब आपका सक्रिय मस्तिष्क विचलित होता है, अच्छी आदतें होती हैं, जो आपको विनाशकारी गलत कामों से बचा सकती हैं।
"आदत" मुद्दे से परे, संकेत जटिल होते हैं और अक्सर मानसिक रूप से ट्रैक करने के लिए मस्तिष्क की शक्ति की बहुत आवश्यकता होती है। जब यह आपके उपयोग की ओर इशारा करता है, तो "पानी को गन्दा नहीं" करना सबसे अच्छा है, खासकर जब आप प्रोग्रामिंग में नए हों।
एक और सामाजिक पहलू भी है। के समुचित उपयोग करके malloc()और free(), कोई भी व्यक्ति आपकी कोड को देखती है आराम से हो जाएगा; आप अपने संसाधनों का प्रबंधन कर रहे हैं। यदि आप, हालांकि, वे तुरंत एक समस्या पर शक नहीं करेंगे।
हो सकता है कि आपने यह काम किया हो कि मेमोरी लीक से इस संदर्भ में कुछ भी चोट न पहुंचे, लेकिन आपके कोड के प्रत्येक अनुचर को अपने सिर में भी काम करना होगा, जब वह उस कोड को पढ़ता है। का उपयोग करकेfree()आप इस मुद्दे पर भी विचार करने की आवश्यकता को हटा दें।
अंत में, प्रोग्रामिंग एक अस्पष्ट भाषा के लिए एक प्रक्रिया का मानसिक मॉडल लिख रहा है ताकि एक व्यक्ति और एक कंप्यूटर पूरी तरह से उक्त प्रक्रिया को समझ सके। अच्छा प्रोग्रामिंग अभ्यास का एक महत्वपूर्ण हिस्सा कभी भी अनावश्यक अस्पष्टता का परिचय नहीं देता है।
स्मार्ट प्रोग्रामिंग लचीली और सामान्य है। खराब प्रोग्रामिंग अस्पष्ट है।