1.内存的动态申请 malloc
- malloc 的头文件: #include <stdlib.h>
- 格式: void *malloc(size_t size);
- 参数:
- size_t size: 申请堆区内存大小, 单位是字节;
- size_t: 是数据类型, 是 unsigned long的宏定义的别名;
- 返回值:
- void *: 通用类型指针,使用时需要强转为具体的类型
- 使用举例:
- 单个变量内存分配:
-
int *p=(int *)malloca(sizeof(int));
-
- 数组变量内存分配:
-
int arr[n]; int *p=arr; int *p=(int *)malloc(sizeof(int)*n)
-
- 单个变量内存分配:
2内存的动态释放 free
- malloc 的头文件: #include <stdlib.h>
- 格式: void free(void *ptr);
- 参数:
- void *ptr: 释放内存的变量指针;
- 返回值:
- 无
- 使用举例:
-
int *p=(int *)malloc(sizeof(int)); free(p); // 堆区内存释放后, p 的指针指向还是原来的地址 p=NULL; //p必须赋值NULL来防止野指针
-