C++ MySQL内存泄漏:libmysqlclient.18

C++ MySQL内存泄漏:libmysqlclient.18,c++,mysql,C++,Mysql,我日以继夜地在谷歌上搜索和阅读MySQL文档,但我似乎无法找出可能导致内存泄漏的原因 这似乎是随机发生的,这是唯一的功能泄漏 代码: 无符号长numRowQuery(std::string查询) { MYSQL*connection=MYSQL_init(NULL); MYSQL_RES*结果; 无符号长num_行; //连接到数据库 if(!mysql\u real\u connect(连接、服务器、用户、密码、数据库、0、NULL、0)) { 标准::cout 如果启用多语句支持,则应该使用

我日以继夜地在谷歌上搜索和阅读MySQL文档,但我似乎无法找出可能导致内存泄漏的原因

这似乎是随机发生的,这是唯一的功能泄漏

代码:

无符号长numRowQuery(std::string查询)
{
MYSQL*connection=MYSQL_init(NULL);
MYSQL_RES*结果;
无符号长num_行;
//连接到数据库
if(!mysql\u real\u connect(连接、服务器、用户、密码、数据库、0、NULL、0))
{
标准::cout
如果启用多语句支持,则应该使用调用mysql\u next\u result()的循环从调用mysql\u query()或mysql\u real\u query()中检索结果,以确定是否有更多结果

软件中的某些查询可能会生成更多的结果,因此,在发出查询后,您需要获取所有查询。请尝试将mysql_free_result函数调用放入循环中,如以下代码所示:

while (mysql_next_result(connection) == 0)
{
    result = mysql_store_result(connection);
    if (result)
        mysql_free_result(result);
}

这是文档:

图像太小,不可扩展,所以基本上没用。嗯,我可以上传一个新的,但是如果你在新窗口中打开它,你可以看到它的全尺寸。
while (mysql_next_result(connection) == 0)
{
    result = mysql_store_result(connection);
    if (result)
        mysql_free_result(result);
}