Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Vazamento de memória no conector MySQL C++


como o WhozCraig sugeriu, você pode adicionar delete Driver; para sua função de teste, mas sugiro usar auto_ptr ou o C++ 11 unique_ptr ou shared_ptr para tudo MYSQL e você nunca terá que se preocupar com vazamentos de memória

tome isso por exemplo

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

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

EDITAR

você não pode simplesmente delete Driver , vou pesquisar mais sobre isso quando tiver tempo

ATUALIZAÇÃO

Examinei o driver.h código-fonte, é realmente protected: virtual ~Driver() {} então você não pode simplesmente usar uma exclusão, mas em public: existem dois
virtual void threadInit() = 0;

    virtual void threadEnd() = 0;

que pode ser o que você precisa

há também este exemplo que pode ser muito útil e faz isso um pouco diferente do que você