【发布时间】:2011-10-05 04:21:32
【问题描述】:
我目前正在调试一些在 linux OS (centos 5) 中运行的遗留 c++ 程序。这些程序都调用类静态成员函数来获取数据库连接设置。这个类是这样编码的
class DbSetting {
public:
static string* getDbSettings();
};
string* DbSetting::getDbSettings() {
string* settings = new string[4];
settings[0] = "dbname";
settings[1] = "server";
settings[2] = "username";
settings[3] = "password";
return settings;
}
在每个程序的main()函数中,都会像这样调用这个静态函数,
int main(int argc, char* argv[]) {
string* dbSettings = DbSetting::getDbSettings();
//dbSettings is used to construct a db connection string
return 0;
}
dbSettings 用于构造数据库连接字符串。但是,它不是“删除”(例如“delete[] dbSettings”)。我的问题是这是潜在的内存泄漏问题吗?这种用法也存在于许多其他遗留的 c++ 程序中。我对此感到困惑。希望有人能给我一个答案。谢谢!
【问题讨论】:
标签: c++ linux pointers memory-leaks