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"));

или C++

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. hibernate map java Long to MySQL BIGINT грешка

  3. PHP:Недефинирана функция mysql_connect()

  4. Недостатъци на цитирането на цели числа в Mysql заявка?

  5. направете идентификатор в таблица на mysql auto_increment (след факта)