C ++检查已删除的指针

C++ Check against deleted pointer

我正在使用套接字,但无法访问 TCP 库。似乎当客户端断开连接时,它会删除对象的内存,但不会使它成为 NULL。我该如何检查?

Client != NULL   => true

目前我有以下崩溃:

正如评论正确指出的那样,您无法检查已删除的指针。出于这个原因,即使是一个半正经的 C++ 框架也会在删除指针时告诉您。一个体面的框架将为此使用智能指针。

如果您发现随机删除对象的代码,请替换它而不是尝试寻找解决方法。这不会是您使用此类代码遇到的唯一问题。

这是网络编程中需要处理的典型案例,正如其他评论所说,您无法检测指针是否被删除。

我个人使用的解决方案是shared_ptr,当连接关闭时,减少refcount并将连接状态设置为关闭。