I was implementing a singleton pattern.Here,I am creating a new instance of Singleton* in GetInstance, when I try and delete it in the destructor, it does in infinite loop. How to avoid memory leak in this case ?
Please refer the below piece of code:
#define NULL 0
class Singleton  
{ 
    private :  
        static Singleton* m_pInstance;  
        Singleton(){};  
    public :
    static Singleton* GetInstance()
    {
        if(m_pInstance == NULL)
        {
            m_pInstance  = new Singleton();         
        }
        return m_pInstance;
    }
    ~Singleton()
    { 
        //delete m_pInstance; // The system goes in infinate loop here if i uncomment this  
        m_pInstance = NULL;
    }
};
Singleton*  Singleton ::m_pInstance = NULL;   
int main()  
{
    Singleton* pInstance = Singleton::GetInstance();
    delete pInstance;  
}     
 
     
     
     
     
     
     
     
     
    