动态内存函数

#include<stdib.h>

malloc

void*malloc(size_t)

需要的类型指针=(需要的类型进行强转)malloc(需要的字节数)

如果开辟不成功会返回一个null

malloc开辟的其实不是一个数组所以在开始

直接指向这段地址的这个指针是不能进行移动的

所以可以分为可动指针

和不可动指针

 

free

释放函数

void free(void* memblock)

释放掉malloc申请的地址。

这时候就需要传入那个不可动指针。

并且将不可动指针置为空

 

malloc函数声明的内存空间只能由free进行释放它不会自动释放就算将指向它的指针置为null也

不行。

而且free不能进行释放指针变量里面的自己存储的数据

 

程序会整个崩掉

calloc

void* colloc(size_t num,size_t size)

它和malloc差不多但是它可以吧开辟的空间初始化为0

不可动指针=(强转为需要的类型)colloc(需要多少个,需要的类型大小)

可以初始化为0

其他就和malloc

realloc

void* realloc(void* ptr , size_t size)

这个是扩容函数

realloc(需要扩容的起始地址,需要的空间大小)

 

realloc这个函数在扩容如果后边空间不够的话会重新找到一个新的空间

并且将原来的数据拷贝过来并且释放掉原来的内存

但是realloc也会有扩容失败的时候就是当在内存中找不到合适的地址时候

会返回空指针如果像上边那样写的话就会让原本的空间也丢失了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值