求教C语言高手:版小弟我看一下这段代码
求教C语言高手:版我看一下这段代码菜鸟求教:以下这段代码不知错在哪里?请高手帮忙C/C++ code#includestdi
求教C语言高手:版我看一下这段代码
菜鸟求教:以下这段代码不知错在哪里?请高手帮忙
C/C++ code#include<stdio.h>#include<malloc.h>typedef struct s1{ int data; struct s1* next;} NODE;push(NODE* head,int value){ NODE* tmp=head; head=(NODE*)malloc(sizeof(NODE)); head->data=value; printf("%d",head->data); head->next=tmp;}print(NODE* head){ NODE* itNode=head; while(itNode) { printf("%d\n",itNode->data); itNode=itNode->next; }}int main(void){ int i; NODE* mylist=0; for(i=1;i<10;++i) push(mylist,i); print(mylist); return 0;}
改一下
[解决办法]push(NODE* head,int value)
{
NODE* tmp=head;
head=(NODE*)malloc(sizeof(NODE));
head->data=value;
printf("%d",head->data);
head->next=tmp;
}的函数必须采用二级指针,采用把 head传回来
push(NODE** head,int value)
{
NODE* tmp=*head;
*head=(NODE*)malloc(sizeof(NODE));
*head->data=value;
printf("%d",*head->data);
*head->next=tmp;
}
[解决办法][解决办法]