黄耳朵的故事 2024-12-22 16:48 采纳率: 46.7%
浏览 12
已结题

C++指针问题,发生段错误

我有点搞不懂了,delete完一个指针,不应该将这个指针置为空吗?

下面是豆包给的解释

img

起因是我想写一个客户端断开连接后服务器删除对应的socket,测试的时候关闭客户端后,服务器就发生了段错误

img

  • 写回答

3条回答 默认 最新

  • 火花20180731 2024-12-23 16:19
    关注

    元对象是不可以直接delete的,元对象有许多事件、信号会添加到事件循环队列中排队等待处理,你提前把它delete了,那些已经触发的事件和信号槽不就要野指针了?
    你只能 (*iter)->deleteLater();
    而且你指针delete完下一步就是从列表里删除它,还有必要置空吗?
    你从表里删除的是对象的地址,也就是指针存储的数值,你把它置空了还怎么删?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月31日
  • 已采纳回答 12月23日
  • 创建了问题 12月22日