sql >> Base de Datos >  >> RDS >> Mysql

Fuga de memoria en MySQL C++ Connector

como WhozCraig sugirió que puede agregar delete Driver; a su función de prueba, pero sugeriría usar auto_ptr o el unique_ptr de C++11 o shared_ptr para todo MYSQL y nunca tendrás que preocuparte por pérdidas de memoria

toma esto por ejemplo

con C++11

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

o el C++

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

EDITAR

no puede simplemente delete Driver , lo investigaré más cuando tenga tiempo

ACTUALIZAR

Revisé el driver.h código fuente, de hecho está protected: virtual ~Driver() {} por lo que no puede simplemente usar una eliminación, sin embargo, en public: hay dos

virtual void threadInit() = 0;

    virtual void threadEnd() = 0;

que puede ser lo que necesitas

también existe este ejemplo que puede ser muy útil y hace esto un poco diferente a usted