登录
  • #刷题

请教‌‌‍‍‌‍‍‌‍‌‍‍‌‌‌‍‍‍‍‌‍‍‌‍‍‍‍‍‌‌‍‍programming interviews exposed 3rd中第4章的问题

zhuniuniu
1842
6
不知道哪里可以问,编程算法发布不了帖子,只能发在这里。还请版主包涵并放到合适位置,谢谢!

35页最下面的在链表头插入元素的例子:



bool insertInFront( IntElement **head, int data) {

IntElement *newElem = malloc(sizeof(IntElement));

... }



1. 为什么函数的第一个参数是一个指向指针的指针呢?此处为什么不能直接用*head?函数的定义里也没有关于对**head的操作。我原来只在处理二维数组的时候用过指向指针的指针。还请大牛赐教。

2. 函数的第一个语句为什么不写成:

IntElement *newElem = (IntElement*)malloc(sizeof(IntElement));

malloc返回的指针是void类型的,要把这个指针赋给其他变量,需要强制转换类型,为何此处不需要转换?

另外这里可以不用malloc吗?因为后面要给newElem赋值,我可以直接用下面语句检查:

if(!newElem)return false;

请问这样可以么?

我刚开始刷此书,水平一般,若有贻笑大方之处,还请大家见谅,谢谢~
6条回复
热度排序

发表回复