【发布时间】:2015-06-10 19:38:40
【问题描述】:
我在读 Skeina 的书。我无法理解这段代码。基本上双指针有什么用。还有*l = p有什么用?谁能用图解释一下。
void insert_list(list **l, item_type x) {
list *p; /* temporary pointer */
p = malloc(sizeof(list));
p->item = x;
p->next = *l;
*l = p;
}
【问题讨论】:
-
这不是 C++(不能在没有强制转换的情况下使用
malloc,如果必须使用原始指针,则应在 C++ 或new中使用智能指针)。 -
@VladfomMoscow 现在 c 在没有
struct关键字的情况下还能工作吗? -
@crashmstr:你不需要在 C 中转换 malloc 的结果。
-
@πάντα ῥεῖ 是的,如果您使用 typedef,它就可以工作。:)
-
@rost0031 我知道,我没有说你需要将结果转换为 C。我说因为没有转换
malloc,它不可能是 C++,这是它最初的标记方式。
标签: c pointers linked-list