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);
程序截图
运行结果
说明
malloc函数运行成功,分配一块连续的内存,并返回该内存空间首元素的地址,这个地址是void*类型的,所以最好进行转换,如果调用失败,则返回NULL.所以一定要对指针进行判断是否为空的操作。
②void* calloc(size_t number_of_elements,size_t element_size);
程序截图
运行结果
说明
该函数完全可以用malloc函数替代,一般用来为结构体数组分配内存空间。
③void *realloc(void *existing_memory,size_t new_size);
程序截图
运行结果
说明1
realloc用来改变已经分配好的内存空间的大小,但是该函数容易失败,在使用时最好备份原来的指针,因为如果调用失败返回的是NULL.
④void free(void* p);
程序截图
运行结果
说明
free用来回收动态分配的内存,当动态分配的内存不再使用时一定要释放掉,注意释放后,指针不是NULL指针,但是该指针不能继续使用,是野指针。