I've a singleton class as follows:

```
class myClass
{
public:
    static myClass* getInstance();
    ~myClass();

private:
    static myClass* m_instance;
protected:
    myClass();
};

```

and for above class definition is:

```
myClass* myClass::m_instance = 0;

myClass::myClass() 
{
}

myClass::~myClass() 
{
}

myClass* myClass::getInstance() 
{
   if(m_instance == 0)
     m_instance = new myClass;
   return m_instance;
}

```

As it's known, once memory is allocated with `new`, it ought to be released to heap to prevent memory leak. In my case I have allocated memory which is not concerned with destructor due to that it's static.
So, how can I release memory allocated? Am I supposed to free it at all? Won't that lead to a memory leak as I have other classes' objects that function in the `main()` as well?

PS: the object returned by `getInstance()` method exists in the `main()` until the shutdown of an application.