菜鸟问题:如何手动撤消单例模式中的内存空间!避免Singleton理论中的内存泄漏? (参与有分)

xqk xqk 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家都知道,在VC中单例设计模式的生存空间与进程的生存空间是一样的,所以以进程结束来负责撤消单例模式的空间,但是进程会认为单例模式存在内存泄漏问题!

所以说我现在想使用STL的Functor来手动释放内存空间,但发现一样会出现内存违规访问,大家来帮忙看看怎样写这段代码才能释放掉单例的内存空间?

class ReleaseSingleton;
class CPSMirrorSocket
{
friend ReleaseSingleton;
public:
static CPSMirrorSocket* GetInstance();
private:
CPSMirrorSocket* instance;
}

class ReleaseSingleton
{
public:
operator ()()
{
CPSMirrorSocket* socket = CPSMirrorSocket::GetInstance();
delete socket->instance; //存在违规访问错误
socket->instance = NULL;
}
};
...全文

相关推荐

评论 13
收藏 已收藏
分享
返回顶部
xqk
VC/MFC 16,550 成员 421,606 内容