void list_remove(list_t *list, int index)
{
int valid_index = list_inner_adjust_index(index, list_size(list));
iterator_t *list_iterator(list);
for (int i = 0; i < valid_index; ++i)
{
iterator_next(iter);
}
iterator_remove(iter);
iterator_delete(iter);
}
iterator_t *list_iterator(list);is wrong and should probably beiter_t *iter = list_iterator(list);