Mysql
 sql >> Database >  >> RDS >> Mysql

Perdita di memoria in MySQL C++ Connector

come suggerito da WhozCraig puoi aggiungere delete Driver; alla tua funzione di test ma suggerirei di usare auto_ptr o il unique_ptr C++11 o shared_ptr per tutto MySQL e non dovrai mai preoccuparti di perdite di memoria

prendi questo per esempio

con C++11

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

o il C++

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

MODIFICA

non puoi semplicemente delete Driver , lo esaminerò di più quando avrò tempo

AGGIORNAMENTO

Ho esaminato driver.h codice sorgente, è infatti protected: virtual ~Driver() {} quindi non puoi semplicemente usare un'eliminazione, come mai in public: ce ne sono due

virtual void threadInit() = 0;

    virtual void threadEnd() = 0;

quale potrebbe essere ciò di cui hai bisogno

c'è anche questo esempio che può essere molto utile e lo fa in modo leggermente diverso da te