malloc:
1、含义:
在堆上动态分配一块连续内存,与free()一起使用
2、用法:
int *p=(int*)malloc(8*sizeof(int))
malloc开辟一个int类型,8个int大小的空间(8*4=32个字节长度),p指针指向malloc所开辟的空间。
3、头文件:
malloc是C标准库中提供的一个普通函数,库函数头文件include<malloc.h>
4、原型:
void *malloc(size_t size)
返回值是一个空指针,指向一段可用的内存的起始地址
一般在返回的时候强转成实际指定类型的指针,如上述的int *p
5、初始化问题:
malloc只管分配内存,不能初始化,所以得到新的内存值是随机的
6、相关函数:
前提:已分配好内存,指针ptr指向该内存
void free(void *ptr)
对分配的内存释放
void *calloc(size_t n,size_t size)
分配指定长度,空间中的每一位bit初始化为0,效率比malloc低,很多情况下空间申请不需要初始值
void *realloc(void *ptr,size_t size)
已分配好内存块的重新分配果开始指针分配为NULL,则和malloc用法一致,否则如果开始内存块小,保存原内存块,再次基础新增,如果是开始内存块大,则在此基础减去尾部内存块。返回值是分配好内存块的头指针。