有关C语言数据结构单链表的问题

为什么单链表中表初始化中的参数是指针的指针?还有if括号里的语句也没看懂voidListInitiate(SLnode**head){if((*head=(SLNode*... 为什么单链表中表初始化中的参数是指针的指针?
还有if括号里的语句也没看懂
void ListInitiate(SLnode **head)
{
if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1);
(*head)->next==NULL;
}
恳请哪位热心人士解说一下,谢谢!
展开
 我来答
匿名用户
2010-02-12
展开全部
因为malloc()有可能出现分配空间失败的情况,当分配失败时,malloc()将返回NULL,而只有在malloc()分配成功的情况下,对为head分配的空间进行操作才有意义,if语句就是检查head的空间有没有分配成功,如果分配失败,就会直接退出程序,而不会执行 (*head)->next==NULL;
百度网友000938229
2010-02-13 · TA获得超过2476个赞
知道小有建树答主
回答量:4411
采纳率:0%
帮助的人:892万
展开全部
我分别回答你的两个问题:
1.关于链表初始化函数的参数
采用指向指针的指针很有可能是在声明链表结点结构以及定义结点变量时出现如下类似情况:
struct SLnode
{
int data;
SLnode* next;
}*array[10];
相当于定义了一个指向SLnode类型,包含10个指针的指针数组,这样在对这10个指针进行初始化时,array就作为函数实参,它是个指向指针的指针
2.关于malloc
malloc函数返回结果是申请到的动态内存首地址。当然,申请过程是有可能失败的,这样就会返回一个空指针,if语句就是判断*head是否成功申请到了内存

有问题我们可以交流哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魂大人的店铺
2010-02-12 · TA获得超过1591个赞
知道小有建树答主
回答量:1129
采纳率:75%
帮助的人:495万
展开全部
malloc是动态地址请求
首先因为它是请求 所以存在是否能得到所请求的地址这一问题
if里面的就是说 如果请求道的是null那么程序就不用接下去了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式