1.引入
int nums[10] = {0}; //对
int len = 10;
int nums[len] = {0}; //错
是因为系统的内存分配原则导致的
2.概述
在系统运行时,系统为了更好的管理进程中的内存,所以将内存进行了分配,其分配的机制就称为内存分配
1.静态分配原则
1.特点
1、在程序编译或运行过程中,按事先规定大小分配内存空间的分配方式。
2、必须事先知道所需空间的大小。
3、分配在栈区或全局变量区,一般以数组的形式。
4、按计划分配
2.动态分配原则
1.特点
1、在程序运行过程中,根据需要大小自由分配所需空间。
2、按需分配。
3、分配在堆区,一般使用特定的函数进行分配。
案例
班级有15个学员,定义数组记录学员成绩
double score[15] = {0};
记录学员成绩
1,输入学员数量
2,在堆区申请
3,扩展
4,释放
注意
在
c
语言中提供了一系列动态分配内存的函数
这些函数大部分都在
stdlib.h
头文件中声明
free
释放
malloc
申请空间
,
默认值随机
calloc
申请空间
,
默认值为
0
realloc
扩展空间
string.h
中提供的函数
memset
将
malloc
中的随机数设为
0
3.动态内存分配
memset函数
作用:重置
语法: