C语言编写链表出错

[复制链接]
查看11 | 回复1 | 2010-11-18 23:40:00 | 显示全部楼层 |阅读模式
代码如下:
Node * initList() {

Node *head;

head = (Node *)malloc(sizeof(Node*)); /*给头指针分配空间*/

head -> data = NULL;

head -> next = NULL;

return head;
}
void addNode(Node *head, int data) {
Node *p = (Node*)malloc(sizeof(Node*));
p -> data = data;
while(head -> next) {
head = head -> next;
}

head -> next = p;
p -> next = NULL;
}
Node* listDelete(Node *head, int i) {
int n = 0;
Node *del = NULL;
Node *p = NULL;
if(i >= listLength(head) || inext;
} else {
p = head;
while(nnext;

n++;
}
del = p -> next;
if(p -> next -> next) {
p -> next = p -> next -> next;
} else {
p -> next =NULL;
}
}
free(del);
del = NULL;
return head;
}
void main() {
Node *p = NULL;

int i = 0;

p = initList();
p -> data = 1;

addNode(p, 2);
addNode(p, 3);
addNode(p, 4);
addNode(p, 5);
p = listDelete(p, 1);
printf("---------------------------------->\n");
while(getElem(p, i)) {
coutdata << endl;
i++;
}
}
执行到free函数时报错如图:
求高手帮忙!


回复

使用道具 举报

千问 | 2010-11-18 23:40:00 | 显示全部楼层
YES黑客论坛 是电脑爱 好者的天 堂 非常期 待您的 加入
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行