今天解决了几个链表中初始化问题
1:函数传值与传址
(1)当需要将传进去的参数进行分配内存初始化工作
typedef struct mycount
{
char i;
int count;
struct mycount *next;
}mycount,*countlist;
void insertnode(countlist *head,char findnode)
{
*head=listinit(); //初始化分配内存
(*head)->i=findnode;
(*head)->count=1;
*head=(*head)->next;
}
以上采用二级指针传址来初始化内存操作,缺点是该操作会对head地址造成变化,不再是首地址
(2)另一种不会影响首地址操作的方式为赋值
void insertnode(countlist head,char findnode)
{
countlist newnode;
newnode=listinit();
newnode->i=findnode;
newnode->count=1;
head->next=newnode; //赋值操作,注意不能采用head=newnode,此操作为传址操作,该处没有用二级指针传址,因此无效
newnode->next=NULL;
return ;
}