gpt4 book ai didi

c++ - 链表深拷贝构造函数

转载 作者:行者123 更新时间:2023-11-28 01:58:43 34 4
gpt4 key购买 nike

我正在实现一个链表类的复制构造函数,它将进行深度复制。这是我的代码:

List( const List & rhs ) {
Node* rhsFront = rhs.header->next;
Node* prev = header;
while (rhsFront) {
prev->next = new Node(rhsFront->data, nullptr);
rhsFront = rhsFront->next;
prev = prev->next;
}
}

但是,它在这一行崩溃了:

prev->next = new Node(rhsFront->data, nullptr);

我做错了什么?

最佳答案

Node* prev = header;

我猜测那里的 header 没有被初始化,因此导致 prev->next 成为一个随机指针(很可能是 0 之类的东西)并且尝试写入该点会使程序崩溃。如果是这样,这可能会奏效。

List( const List & rhs ) {
Node* rhsFront = rhs.header->next;
header = new Node(rhs.header->data, nullptr);
Node* prev = header;
while (rhsFront) {
prev->next = new Node(rhsFront->data, nullptr);
rhsFront = rhsFront->next;
prev = prev->next;
}
}

关于c++ - 链表深拷贝构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40320856/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com