咱们开门见山吧,直接上代码更容易理解
// An highlighted block
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 struct student
6 {
7 char *name;
8 int age;
9 };
10
11 int main()
12 {
13 struct student *p_student=NULL;
14 p_student=((struct student *)malloc(sizeof(struct student)));
15 if(p_student == NULL)
16 {
17 printf("Failed to apply for memory space!\n");
18 exit(1);
19 }
20
21 p_student->name="Tom";
22 p_student->age=23;
23
24 printf("name:%s\n",p_student->name);
25 printf("age:%d\n",p_student->age);
26
27 free(p_student);
28 p_student=NULL;//注意,释放掉了malloc空间,但结构体指针依然存在,仍需要指向NULL;
29 return 0;
30 }
malloc函数的用法很简单。首先定义一个指针变量,然后使用malloc函数申请一块动态内存,接着判断申请动态内存有无成功。如果p_student == NULL,则说明申请动态内存失败。
需要注意的是,定义指针变量p_student时指向NULL;使用free函数释放了申请的动态内存malloc空间后,指针变量p_student仍然存在,因此仍需要指向NULL。