malloc函数

时间:2023-03-09 08:12:40
malloc函数

C语言中,使用malloc函数向内存中动态申请空间。

函数的原型是extern void *malloc(unsigned int num_bytes);

可见,函数返回的是指针类型,参数是要申请的空间的大小。

例如,我们在申请一个Node节点的时候。

#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int num;
struct Node *next;
}Node;
int main()
{
Node *newNode;
newNode = (Node *)malloc(sizeof(Node));
newNode->num=999;
printf("%d",newNode->num);
return 0;
}

  定义了一个节点指针,动态申请Node大小的内存空间,将返回的指针强制转化为Node型的,这样就完成了节点指针的创建。这种创建方式比较灵活,当我们不需要当前这个Node的时候,我们可以重新让其指向另一个节点。

  而如果直接声明的时候,Node类型节点就固定了,知道离开作用域。

  同时,取变量的时候,用结构体变量直接取分量,用“.”,用指向结构体的指针取分量的时候,用“->”,也可以用(*newNode).num取变量,这两个是等价的。注意括号,否则编译不能通过。