Мне было поручено передать указатель на связанный список и скопировать его в новый список, переданный как указатель на связанный список, и рекурсивно скопировать его. Я получаю ошибку сегментации при попытке скопировать самый первый элемент.
Я пробовал каждую комбинацию указателя и ссылки, о которой я мог подумать, поддерживая программные требования прототипа функции:
void duplicate (node * head, node * & newHead)
#include <iostream>
#include "supplied.o"
using namespace std;
struct node
{
int data;
node * next;
};
int main()
{
node * head = NULL;
build(head); // supplied function initializes list
newHead = NULL;
duplicate (head, newHead);
}
void duplicate (node * head, node*& newHead)
{
node * iterator1 = NULL;
node * iterator2 = new Node;
node * iterator2 = newHead;
iterator2->data = iterator1->data; //error occurs here
// program will continue to copy list recursively
}
void build (node *& head) //cannot see this function; provided via "supplied.o"
{
}
ошибка возникает из-за того, что функция не может получить доступ к iterator2-> data. Итератор1-> данные могут быть доступны и даже напечатаны без проблем.