Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C/C++ में मेमोरी लीक क्या है?


मेमोरी लीक तब होती है जब प्रोग्रामर द्वारा डायनामिकली अलोकेट की गई मेमोरी को ठीक से डीअलोकेट (मुक्त) नहीं किया जाता। यह मेमोरी प्रोग्राम द्वारा उपयोग नहीं की जाती, फिर भी रिज़र्व रहती है, जिससे सिस्टम संसाधन बर्बाद होते हैं।

कारण और प्रभाव

  • मेमोरी लीक से सिस्टम की उपलब्ध मेमोरी कम होती है।
  • पर्याप्त मेमोरी होने पर भी प्रदर्शन धीमा हो सकता है।
  • लंबे समय तक चलने वाले प्रोग्राम्स (सर्वर, डेमन) में यह गंभीर समस्या बन सकती है।

उदाहरण 1: C++ में new बिना delete के

void my_func() {
    int *data = new int;
    *data = 50;
    // data को delete नहीं किया गया - मेमोरी लीक!
}

उदाहरण 2: C में malloc बिना free के

#include <stdlib.h>

void leak_example() {
    int *ptr = malloc(sizeof(int) * 100);
    // ptr को free() नहीं किया गया
}

रोकथाम

  • हर malloc/calloc/realloc के लिए free करें।
  • C++ में new के लिए delete, new[] के लिए delete[] उपयोग करें।
  • स्मार्ट पॉइंटर्स (std::unique_ptr, std::shared_ptr) का उपयोग करें (C++11+)।
  • वैलग्रिंड (Valgrind) जैसे टूल्स से लीक डिटेक्ट करें।

दूसरा उदाहरण (नेस्टेड फंक्शन - असंबंधित)

मूल लेख में एक नेस्टेड फंक्शन उदाहरण दिया गया था जो मेमोरी लीक से असंबंधित है। उसे यहां नहीं दिखाया गया।

  1. C/C++ में टाइप कास्ट क्या है? C/C++ में टाइप कास्ट क्या है?

    टाइप कास्टिंग एक वेरिएबल को एक डेटा टाइप से दूसरे डेटा टाइप में बदलने का एक तरीका है। उदाहरण के लिए, यदि आप एक long मान को एक साधारण इंटीजर में संग्रहीत करना चाहते हैं तो आप long को int में टाइप कास्ट कर सकते हैं। आप कास्ट ऑपरेटर का उपयोग करके मानों को एक प्रकार से दूसरे प्रकार में स्पष्ट रूप से बद

  1. - विंडोज पर C++ के लिए शीर्ष IDE

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। यहां विंडोज के लिए सर्वश्रेष्ठ C/C++ IDEs की सूची दी गई है। Visual S

  1. मेमोरी लीक क्या है? इसे कैसे रोकें? मेमोरी लीक क्या है? इसे कैसे रोकें?

    मेमोरी लीक तब होती है जब आपके द्वारा उपयोग किए जा रहे ऐप के संसाधन सिस्टम पर वापस नहीं लौटते। टास्क मैनेजर में आपकी मेमोरी का उपयोग बढ़ जाता है और आपके पीसी का प्रदर्शन कम हो जाता। यह आमतौर पर तब होता है जब आपके पीसी में पर्याप्त रैम नहीं होती और आवश्यक मेमोरी आपकी रैम क्षमता से कहीं अधिक होती है।यह