c++ 链接列表节点对象

pieyvz9o  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(171)
class Node{
public:
    int data;
    Node* next;
    
    Node(int data)
    {
        this->data = data;
        this->next = NULL;
    }
};
int main()
{
    Node* node1 = new Node(12);
    
    cout<< node1->data ;
    
    return 0;
}

不明白为什么要为节点(Node* node1)创建指针对象?
谢谢你提前消除我的疑虑

hgb9j2n6

hgb9j2n61#

main()中的代码需要一个指针,因为new返回的是这个指针,代码在堆的 dynamic 内存中创建Node对象(由于return语句之前没有delete node1;语句,因此泄漏了它)。
你可以在堆栈的 automatic 内存中创建对象,这样就不需要指针了,例如:

int main()
{
    Node node1(12);
    
    cout << node1.data;
    
    return 0;
}

通常,使用动态存储器来创建链表,使得新节点可动态地添加到列表,诸如在循环中,或响应于用户输入等。

相关问题