Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fuite de mémoire dans le connecteur MySQL C++

comme WhozCraig l'a suggéré, vous pouvez ajouter delete Driver; à votre fonction de test, mais je suggérerais d'utiliser auto_ptr ou le C++11 unique_ptr ou shared_ptr pour tout MYSQL et vous n'aurez jamais à vous soucier des fuites de mémoire

prenez ceci par exemple

avec C++11

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

ou le C++

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

MODIFIER

vous ne pouvez pas simplement delete Driver , je regarderai plus quand j'aurai le temps

MISE À JOUR

J'ai parcouru le driver.h code source, il est bien protected: virtual ~Driver() {} vous ne pouvez donc pas simplement utiliser une suppression, cependant dans public: il y en a deux

virtual void threadInit() = 0;

    virtual void threadEnd() = 0;

qui peut être ce dont vous avez besoin

il y a aussi cet exemple ce qui peut être très utile et le fait un peu différemment de vous