, поэтому я хочу добавить между двумя узлами связанного списка новый узел, поле данных которого в основном содержит сумму предыдущего и следующего узлов. Я не могу понять, почему, как только я вхожу в цикл while, я не могу выбраться из него. Какие-либо предложения? Спасибо.вставить узел между двумя другими в связанном списке
Вот мой код:
void modify_list (node *head) {
nodo *it = head;
nodo *prev = NULL;
int n_prev = 0;
int n_next = 0;
int sum = 0;
it = it->next;
prev = it;
while (it->next != NULL) {
it->data = n_next;
prev->data = n_prev;
sum = n_next + n_prev;
node *new;
new = malloc(sizeof(node));
if (new == NULL) {
printf("Error.\n");
return;
}
memset(nuovo, 0, sizeof(node));
new->data = sum;
prev->next = new;
new->next = it;
sum = 0;
prev = it;
it = it->next;
}
}
Я сделал то, что вы предложили, и ошибка цикла решена, но она по-прежнему падает. Если в моем списке 5 узлов, он 4 раза (что должно быть хорошо), но сразу после последнего цикла все зависает. – SCoder
Знаете ли вы, на какой линии он падает? –
Он выходит из строя сразу после выхода из цикла while. – SCoder