0
PROBLEM
:什麼是內存泄漏的原因是什麼?libmysqlclient.18.dylib內存泄露
SITUATION
: 我已經建立使用C++一起使用MySQL C API
問題是MySQL的一個簡單的命令行程序,該程序有許多「次要」存儲器從物體malloc xx bytes"
與XX測距泄漏從幾個字節到8 kb。所有泄漏鏈接到圖書館libmysqlclient.18.dylib
。
我已經刪除了所有mysql_free_result()
從代碼,看看這是問題,但它仍然是相同的。
我的MySQL的代碼主要由簡單的代碼,如:
連接:
MYSQL *databaseConnection()
{
// declarations
MYSQL *connection = mysql_init(NULL);
// connecting to database
if(!mysql_real_connect(connection,SERVER,USER,PASSWORD,DATABASE,0,NULL,0))
{
std::cout << "Connection error: " << mysql_error(connection) << std::endl;
}
return connection;
}
執行查詢:
void resetTable(std::string table)
{
MYSQL *connection = databaseConnection();
MYSQL_RES *result;
std::string query = "truncate table " + table;
result = getQuery(connection, query);
mysql_close(connection);
}
上面的例子只是一個,就像我說的例子。我沒有爲每個查詢打開一個新的連接:p無論如何,我已經嘗試在每個結果集之後放置'mysql_free_result()',但它仍然在泄漏。在另一個線程中,我已經閱讀關於在關閉連接後使用'mysql_library_end()'的內容。仍然是相同數量的泄漏... – Robert 2013-03-02 05:09:12
該死的,在分解我的程序代碼後,我發現你實際上必須釋放每個**單個結果集。感謝黃昏! – Robert 2013-03-02 13:26:13