一、函数malloc(开辟动态内存空间)
void* malloc (size_t size)
头文件 #include<stdlib.h>
(1)若开辟失败会返回一个空指针。
(2)如果我们不释放:当程序结束,该内存空间会被系统自动回收。
当程序不结束,动态内存是不会自动回收的,就会造成内存泄漏的问题。
(3)申请的空间不会初始化。
二、函数free(释放动态开辟的内存空间)
void free (viod*memblock)
头文件 #include<stdlib.h>
(1)一般释放完的空间应该给它赋值为NULL。
(2)如果memblock为空指针,则函数什么事都不做。
(3)必须从开辟动态内存的起始位置释放。
三、函数calloc(开辟动态内存空间)
void *calloc(size_num,size_size)
头文件 #include<stdlib.h>
num为申请size类型的个数,size为申请类型。
(1)申请的空间会被初始化为0。
四、函数realloc(扩容空间)
void *realloc(void * ptr,size_size)
头文件 #include<stdlib.h>
ptr为要调整的内存地址,size为调整之后新大小。返回值为调整之后的内存起始位置。
(1)如果扩容失败返回一个空指针。
(2)在扩容时若原空间无法扩容到目标空间,则会找到一块新的足够大的空间,并且会把原来大小内存空间中的内容复制到新空间中,并返回新的空间地址指针。还会把原空间free掉。