malloc
这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。
free
free函数用来释放动态开辟的内存。
●如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的。
●如果参数 ptr 是NULL指针,则函数什么事都不做。
calloc
函数的功能是为 num 个大小为 size 的元素开辟一块空间,并且把空间的每个字节初始化为0。
realloc
realloc函数的出现让动态内存管理更加灵活。
●ptr 是要调整的内存地址
●size是调整之后新大小
●返回值为调整之后的内存起始位置。
●realloc在调整内存空间的是存在两种情况:
(1)情况1:
要扩展内存就直接原有内存之后直接追加空间,原来空间的数据不发生变化。
(2)情况2:
①在堆空间另找一个大小合适的连续空间使用;
②把原有空间内容拷贝下来;
③把原有空间内容释放掉;
④把新空间地址返回。