C中的malloc()函数

Pra*_*jut -1 c malloc

有人可以解释一下吗?

struct node 
{ 
    int data; 
    struct node * link; 
} 
main() 
{
    struct node *p, *list, *temp; 
    list = p = temp = NULL; 
    ......................... 
    ......................... 
} 

addbeg() 
{ 
    int x;
    temp=malloc(sizeof(struct node));
    scanf("%d", &x); 
    temp->data=x;
    temp->link = list;
    list=temp;
}
Run Code Online (Sandbox Code Playgroud)

这是一个通过C语言在链表中输入数据的代码.代码不完整,但我认为它足以达到目的.请解释基本上这些代码的编码:

 temp=malloc(sizeof(struct node));
Run Code Online (Sandbox Code Playgroud)

 temp->link = list;
 list=temp;.
Run Code Online (Sandbox Code Playgroud)

Amb*_*ber 9

malloc() 用于分配内存 - 在这种情况下用于新节点.

addbeg()代码中定义的函数执行以下操作:

  1. 定义临时变量x.
  2. 为新节点分配空间.
  3. 输入一个整数(%d代码scanf)并存储它x.
  4. 存储保存到x新分配节点的数据字段中的值.
  5. 将变量' list' 指向的列表的旧"头"存储为新分配的节点中的链接.
  6. 将新节点设置为存储在变量' list' 中的列表的新头.

它是整数链表(http://en.wikipedia.org/wiki/Linked_list)的一个非常基本的实现.

  • 您可以有用地添加一个注释,代码应该最终确保每个分配的内存都以`free()`发布,嘀咕'内存泄漏'并且'对于小型学习程序而言并不重要,但是在大的长时间内 - 运行',所以你也可以学习如何在小型学习计划上做到这一点. (2认同)