'C linked list define how to reimplement a list

Hi this is probably a stupid question to ask with a simple solution but I just can't find an answer in the internet.

So I was exercising for an exam and worked on an assignment. The program has the job to find out what the value in the center of a linked list is (if the length of the list is an odd number)

The structdef is:

typedef struct IntList IntList;
struct IntList {
    int value;
    IntList* next;
};

and my exact problem right now is that I get a segmentation fault when I try using:

list = list->next;

I want to go step by step in a loop to go to the wished list at the nth position (the center) of the linked list.

Someone knows how I have to rewrite this? If you need more Information to help just say so and I will explain more.

With that function I check the length of the list and in my other function I have a loop which only goes to the mid of the length.

int length_list(IntList* list) {
    int n = 0;
    for(IntList* node = list; node != NULL; node = node->next) n++;
    return n;
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source