Проблема в операторе []
А именно в условии
while (current->next != NULL)
Должно быть
while (current != NULL)
Также у вас данный оператор не возвращает ничего в случае, индекс больше, чем количество элементов в листе, а также не проверяет условие по типу:
index < size
Помимо этого у вас ещё много проблем в коде, но если вы начинающий, то что же, учитесь, все впереди. Попробуйти найти себе человека, который сможет скорректировать/отревьюить ваш код, потому в текущем виде он весьма плохо может работать, из-за сырых указателей, таких же сырых выделений памяти, отсутствия её освобождения, непонятно зачем наличие оператора [] у linked list (в стандартной библиотеки их нет не случайно и нужна веская причина чтобы пользоваться оператором [] в linked list )