gpt4 book ai didi

c++ - std::string 内存泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:03 25 4
gpt4 key购买 nike

我有这个类 AppController 和函数 connectPlayer:

/* AppController.h */
class AppController
{
// Some other declarations ...
private:
static const string TAG;
};

/* AppController.cpp */

#include "AppController.h"
const string AppController::TAG = "AppController";

AppController::AppController() {
/* some code here...*/
}

void AppController::connectPlayer() {
std::string port;
std::string host;
port = CM->getMenu()->getData("PORT");
host = CM->getMenu()->getData("HOST");
this->setState("Connecting...");
Logger::info(TAG, "Port: " + port);
Logger::info(TAG, "Host: " + host);
}

当我执行程序时,我从 valgrind 得到这个:

==7848== 25 bytes in 1 blocks are definitely lost in loss record 160 of 671
==7848== at 0x402842F: operator new(unsigned int) (vg_replace_malloc.c:255)
==7848== by 0x4210A83: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16)
==7848== by 0x4212CF7: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16)
==7848== by 0x4212E65: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.16)
==7848== by 0x8080501: AppController::connectPlayer() (in /home/maine/Escritorio/taller7542/UltimaVersion/src/main)

有什么想法吗?提前致谢!

最佳答案

您在全局范围内有 std::string 对象:AppController::TAG

当应用程序以不太正常的方式完成时,您会遇到此类全局对象的 valgrind 错误。可能没什么好担心的。

如果您(不能/不想)更改您的程序 - 请阅读此文档:http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress摆脱这个错误。

关于c++ - std::string 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13001784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com