C ++检查已删除的指针
C++ Check against deleted pointer
我正在使用套接字,但无法访问 TCP
库。似乎当客户端断开连接时,它会删除对象的内存,但不会使它成为 NULL
。我该如何检查?
Client != NULL => true
目前我有以下崩溃:
正如评论正确指出的那样,您无法检查已删除的指针。出于这个原因,即使是一个半正经的 C++ 框架也会在删除指针时告诉您。一个体面的框架将为此使用智能指针。
如果您发现随机删除对象的代码,请替换它而不是尝试寻找解决方法。这不会是您使用此类代码遇到的唯一问题。
这是网络编程中需要处理的典型案例,正如其他评论所说,您无法检测指针是否被删除。
我个人使用的解决方案是shared_ptr,当连接关闭时,减少refcount并将连接状态设置为关闭。
我正在使用套接字,但无法访问 TCP
库。似乎当客户端断开连接时,它会删除对象的内存,但不会使它成为 NULL
。我该如何检查?
Client != NULL => true
目前我有以下崩溃:
正如评论正确指出的那样,您无法检查已删除的指针。出于这个原因,即使是一个半正经的 C++ 框架也会在删除指针时告诉您。一个体面的框架将为此使用智能指针。
如果您发现随机删除对象的代码,请替换它而不是尝试寻找解决方法。这不会是您使用此类代码遇到的唯一问题。
这是网络编程中需要处理的典型案例,正如其他评论所说,您无法检测指针是否被删除。
我个人使用的解决方案是shared_ptr,当连接关闭时,减少refcount并将连接状态设置为关闭。