malloc、calloc、realloc

malloc

函数原型

void *malloc(size_t size); 
//向系统申请分配指定size个字节的内存空间,size是一个无符号数
//返回类型为void*,表示不肯定返回类型的指针。也就是说,返回
类型的指针能够被强制转换成任意类型的指针。

头文件

#include<malloc.h>或者
#include<stdlib.h>

calloc

函数原型

void *calloc(size_t n, size_t size);
//在内存的动态存储区域区中分配n个长度为size的连续存储空间
//函数返回一个指向分配起始地址的指针,若是分配不成功,则
返回NULL

头文件

#include<stdlib.h>或者
#include<malloc.h>

calloc在动态分配完成后,自动初始化该内存空间为0,而malloc并>不进行初始化,分配的内存中都是随机的垃圾数据。函数

realloc

函数原型

extern void *realloc(void *mem_address, unsigned int newsize);
//先判断当前的指针是否有足够的连续空间,若是有,
//扩大mem_address指向的地址,而且将mem_address返回,
//若是空间不够,先按照newsize指定的大小分配空间,
//将原有数据从头至尾拷贝到新分配的内存区域,
//然后释放原来mem_address所指内存区域
//(注意:原来指针是自动释放,不须要使用free),
//同时返回新分配的内存区域的首地址。即从新分配存储器块的地址。

头文件

#include<stdlib.h>或者
#include<malloc.h>

若是地址分配成功,则返回被分配内存的指针,不然返回空指针NULL指针

相关文章
相关标签/搜索