C语言–备忘
C - 内存分配
一、C 内存分配
1. 变量:
- 缺点:不能分配大量内存;[static, const, 动态,全局]
2. 数组:
- 数组:数据类型相同,可做到大量内存分配。
- 局部数组:访问范围有限。
- 全局数组:存在乱序访问,需要添加互斥保护,降低运行效率。
3. Struct:
- 可以数组成员来实现大量内存访问,同样存在数组缺陷;
- 做到分配大量内存,并且分配内存与数据类型无关。
4. malloc 和 free:
1. malloc 函数
- 功能:动态(随时随地)分配连续内存,必须使用free函数释放;
- 形参:size:指定要分配的内存大小,单位是字节 ;
- 返回值:返回分配的内存的首地址,注意做到强制类型转换;
如果分配失败,返回值NULL
#include <stdlib.h> //为了分配malloc和free
void *malloc(unsigned long size)
分配举例:
void *p=malloc(8);
if(NULL==p){
printf("分配内存失败");
return -1;
}else{