struct node *add_to_list (struct node *list, int n)
{
struct node *new_node;
new_node = malloc(sizeof(struct node));
}
在此代码中,new_node在"结构节点"结构中定义,因此new_node具有结构节点的内存大小
但在第四行中,new_node的内存大小被重新定义
但是当执行malloc(sizeof(struct node((时,我认为新节点的大小没有变化,因为新节点的内存大小已经与"结构节点"内存大小相同
那么为什么这段代码在第 4 行
这定义了一个指针:
struct node *new_node;
指针的大小为 32 位或 64 位,具体取决于体系结构。
new_node = malloc(sizeof(struct node));
这实际上为该结构的大小分配了node
内存。
顺便说一句,强烈建议检查malloc()
调用的结果是否NULL
,否则以后可能会遇到非常讨厌的问题。
以防万一您想知道,例如,这会创建node
(不是指针(:
struct node new_node;
请注意缺少星号*
符号。