一, malloc
void *malloc(unsigned int num_byte)
1,num_bytes为需要申请的内存大小,需要人为的去计算,申请的类型徐手动强转为对应指针的类型
2,申请的值是不确定的
二 calloc
void*calloc(size_t n, size_t size)
1, 比malloc多一个参数,省去了认为计算的麻烦,
2,申请的每一个值都会被初始化为0,因此也会降低效率,
三, realloc
void *realloc(void *ptr, size_t newsize)
1, 与前两个大不同,主要用于对已申请的内存进行扩容
2,分三种情况: 若size 较小并且原申请内存还有多余空间,就直接在原内存后扩容,返回原空间的地址
若size较大,原内存不够,系统将重新分配一段内存,并将原内存拷贝到新内存中,原内存free
若size 非常大,系统申请内存失败,返回NULL