I am currently debugging some legacy c++ programs that runs in linux OS (centos 5). Those programs all call a class static member function to get a db connection setting. The class was coded like this

```
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;
}

```

In each program main() function, it will call this static function like this,

```
int main(int argc, char* argv[]) {

    string* dbSettings = DbSetting::getDbSettings();

    //dbSettings is used to construct a db connection string

    return 0;
}

```

The dbSettings is used to construct a db connection string. However, it wasn't being "delete" (e.g. "delete[] dbSettings"). My question is that is it a potential memory leak issue? Such usage exists in many other legacy c++ programs as well. I am confused about it. Hope someone can give me an answer. Thank you!