void delete(NODE* list, int index) {
if (list==NULL) {
printf("Invalid list\n");
return;
}
if (index < 0 || index >= list_length(list)) {
printf("Invalid index\n");
return;
}
NODE* buffer=list;
if (index==0) {
NODE* temp=list;
list=buffer->next_node;
free(temp);
return;
};
for (int i=0; i<index-2; i++) {
buffer=buffer->next_node;
}
NODE* temp=buffer->next_node;
buffer->next_node=buffer->next_node->next_node;
free(temp);
}
The case where index==0 throws a seg fault. Can anyone tell why ?