所以我想在链表的两个节点之间添加一个新节点,其数据字段基本上包含前一节点和下一节点的总和。我无法理解为什么一旦我进入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 2015-02-23 18:56:11
你知道它崩溃在哪条线吗? – 2015-02-23 18:58:24
它在退出while循环后立即崩溃。 – SCoder 2015-02-24 08:35:49