Segfault de Ponteiro de Estruturas C ++
Em primeiro lugar, agradecemos antecipadamente a todos vocês que responderam a este post.
Em segundo lugar, examinei todos os outros posts e não consegui encontrar nada que me ajudasse (minhas desculpas, eu sou novo em C ++).
Aqui está meu código:
Node* Insert(Node *head,int data) //for linked lists
{
Node* current = head;
while(current -> next != NULL){
current = current -> next;
}
cout << head -> data;
Node *last = new Node();
last -> data = data;
last -> next = NULL;
current -> next = last;
return head;
}
Parece (por tentativa e erro de comentário de linha) que o acesso do próximo atributo no ponteiro atual parece ser o problema, mas não consigo descobrir por quê. A estrutura do nó tem dois atributos, * next (que aponta para o próximo item na lista vinculada) e dados (os dados do nó).
Alguma idéia do que está acontecendo?
linuxuser
EDIT: O problema foi resolvido - muito obrigado a todos os que deixaram comentários!
Infelizmente, não consegui usar o**pHead
solução de desreferência, pois o problema está em um site que insere automaticamente os argumentos para a função. Usando os comentários abaixo, no entanto, criei um programa simples que espero que detalhe esse problema para outros programadores C ++ iniciantes como eu:
Node* Insert(Node *head,int data)
{
if(head == NULL){
Node* last = new Node();
last -> data = data;
return last;
}
Node *current = head;
while(current -> next != NULL){
current = current -> next;
}
Node *last = new Node();
last -> data = data;
last -> next = NULL;
current -> next = last;
return head;
}
Saudações,
linuxuser