Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL C++ कनेक्टर में मेमोरी लीक

जैसा कि WhozCraig ने सुझाव दिया है कि आप जोड़ सकते हैं delete Driver; आपके परीक्षण समारोह में लेकिन मैं auto_ptr . का उपयोग करने का सुझाव दूंगा या C++11 unique_ptr या shared_ptr सब कुछ के लिए MYSQL और आपको कभी भी मेमोरी लीक के बारे में चिंता करने की ज़रूरत नहीं होगी

इसे उदाहरण के लिए लें

C++11

. के साथ
std::unique_ptr< sql::Connection > con( driver->connect("tcp://127.0.0.1:3306", "root", "root"));

या सी++

std::auto_ptr< sql::Connection > con( driver->connect("tcp://127.0.0.1:3306", "root", "root"));

संपादित करें

आप केवल delete Driver नहीं कर सकते हैं , मेरे पास समय होने पर मैं इस पर और गौर करूंगा

अपडेट करें

मैंने driver.h . को देखा स्रोत कोड, यह वास्तव में protected: virtual ~Driver() {} . है इसलिए आप केवल एक डिलीट का उपयोग नहीं कर सकते, चाहे कभी भी public: . में दो हैं

virtual void threadInit() = 0;

    virtual void threadEnd() = 0;

जिसकी आपको आवश्यकता हो सकती है

यह भी है उदाहरण जो बहुत उपयोगी हो सकता है और इसे थोड़ा अलग तरीके से करता है तो आप



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अस्थायी MySQL तालिका को फ़ाइल में कैसे डंप करें?

  2. क्या आपको उनके बचने के लिए तैयार बयानों का उपयोग करना चाहिए?

  3. MySQL:अलग-अलग टेबल में एक ही नाम के साथ लेफ्ट जॉइन और कॉलम

  4. MySQL अपडेट इंक्रीमेंटेड (ऑटो-इन्क्रिमेंटेड नहीं) कॉलम मान

  5. मारियाडीबी - माईएसक्यूएल - सभी उपलब्ध और समर्थित इंजन प्रदर्शित करने के लिए इंजन दिखाएं