#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也会有扩容失败的时候就是当在内存中找不到合适的地址时候
会返回空指针如果像上边那样写的话就会让原本的空间也丢失了