一.为什么要使用动态内存分配???
以一个数组为例:在定义一个数组时给定了其内存空间,只要给定足够大的空间,就可以放入你所需的数据元素。但当内存空间小于所需放入的元素个数时,我们就需要给这个内存空间去增容,以此来满足你的需求。
上述定义数组时设置足够大的内存空间看似简单,但却有以下缺点:
1.如果内存空间很大,数据却很少就会使内存空间浪费。
2.如果内存空间不足就会出现溢出的现象。
二.malloc
1. 函数原型:
//头文件
#include<malloc.h>
//函数原型
void *malloc(sizt_t size);
malloc的参数就是需要所分配的字节数。
2. malloc在C语言中不是关键字而是C函数库中提供的函数。如果需要进行内存分配时在调用malloc时就是在内存池中提取一块内存空间(在堆上申请一块空间),但是这块空间是连续的空间。,并向该程序返回一个这块内存的指针。