user949358
user949358

Reputation: 113

Segfault on linked list manipulation

I dont know why im getting this segfault here. I am trying to take every other node and place it in a new list. Edit: this is what i ended up with but i still get a segfault

template <class T>
List<T> List<T>::mixSplit()
{
    List<T> newList;
    newList.length=0;
    for (int count=0;count<2;count++)
        newList.head=newList.head->next;
    newList.tail=tail;
    newList.head->prev=NULL;
    newList.tail->next=NULL;
    return newList;
}

Upvotes: 1

Views: 149

Answers (1)

sje397
sje397

Reputation: 41832

On the first iteration of

for (int count=0;count<1;count++)
    newList.head=newList.head->next;

...newList.head is NULL...so using newList.head->next is a bad idea.

I'd recommend that you iterate over the current list fairly normally(i.e. current = head; while(current) ...), increment a counter within the loop to track the current position in the list, and whenever the loop counter is even or 0 (counter % 2 == 0 or (counter & 1) == 0) use the standard 'list add' function on your new list to append a new node.

Upvotes: 1

Related Questions