当我编写这样的代码时,我遇到了一些 valgrind 问题:
static std::string function(std::string test)
{
size_t pos = test.find(',');
if (pos == test.npos)
{
// no comma
//
pos = test.length();
}
return test.substr(0, pos); //Valgrind is reporting possibly lost bytes here
}
现在我的问题是我应该这样做吗?
static std::string function(std::string test)
{
size_t pos = test.find(',');
if (pos == test.npos)
{
// no comma
//
pos = test.length();
}
static std::string temp = test.substr(0, pos);
return temp;
}
我认为拥有字符串temp
static 有点重要,因为function
它是静态的,因此返回的任何内容都function
应该与封装的对象具有相同的生命周期function
。还是我的分析有问题?
谢谢