steven~~~ 2022-09-09 09:28 采纳率: 0%
浏览 2317

vs报错:已执行断点指令

下述代码在运行的时候报错:已在 ******.exe 中执行断点指令(__debugbreak()语句或类似调用)。报错行为粗体那一行,请大神指教



struct ListNode {
    int val;
    ListNode* next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode* next) : val(x), next(next) {}
};

class Solution {
public:
    int DeleteFront(ListNode* HL)
    {

        ListNode* p = HL;
        HL = HL->next;
        int temp = p->val;
       ** delete(p);**
        return temp;
    }

};

int main() {
    ListNode l1 = ListNode(1, nullptr);
    Solution solution;
    solution.DeleteFront(&l1);
}
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-09 09:35
    关注

    你就创建了一个头节点,你删啥啊
    而且这个头节点并不是动态分配的空间啊,你delete当然不行了
    如下修改:

    class Solution {
    public:
        int DeleteFront(ListNode*& HL)
        {
     
            ListNode* p = HL;
            HL = HL->next;
            int temp = p->val;
            delete(p);
            return temp;
        }
     
    };
     
    int main() {
        ListNode *l1 = new  ListNode(1, nullptr);
        Solution solution;
        solution.DeleteFront(l1);
    
    
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 9月9日