为啥力扣第二题两数相加写ListNode b(1,a);会报错

为啥写力扣第二题写ListNode b(1,a);会报错 vs都不会给我报错
题:https://leetcode.cn/problems/add-two-numbers/

img


/**
 * Definition for singly-linked list.
 * 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:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* a,*d;
        ListNode c(2);
        a = &c;
        ListNode b(1,a);
        d = &b;
        return d;
    }
};

你在牛客里面的注释是已经写好了,但是你在vscode里面是没有写好的,所以可以把VScode里面的注释给删掉就好了,还有貌似没有主函数,也运行不了哦

你的代码肯定有问题
d是个指针,指向一个局部变量b,然后返回这个d,出了这个函数,b被回收了,d就指向个寂寞