linux函数代码操练---内存管理

基础知识

头文件
stdlib.h
函数
void* malloc(size_t size);
void* calloc(size_t number_of_elements,size_t element_size);
void *realloc(void *existing_memory,size_t new_size);

void free(void* p);

实验

①.void* malloc(size_t size);
程序截图
linux函数代码操练---内存管理
运行结果
linux函数代码操练---内存管理
说明
malloc函数运行成功,分配一块连续的内存,并返回该内存空间首元素的地址,这个地址是void*类型的,所以最好进行转换,如果调用失败,则返回NULL.所以一定要对指针进行判断是否为空的操作。
void* calloc(size_t number_of_elements,size_t element_size);
程序截图
linux函数代码操练---内存管理
运行结果
linux函数代码操练---内存管理
说明
该函数完全可以用malloc函数替代,一般用来为结构体数组分配内存空间。
void *realloc(void *existing_memory,size_t new_size);
程序截图
运行结果
说明1
realloc用来改变已经分配好的内存空间的大小,但是该函数容易失败,在使用时最好备份原来的指针,因为如果调用失败返回的是NULL.

void free(void* p);
程序截图
linux函数代码操练---内存管理
运行结果
linux函数代码操练---内存管理
说明
free用来回收动态分配的内存,当动态分配的内存不再使用时一定要释放掉,注意释放后,指针不是NULL指针,但是该指针不能继续使用,是野指针。