malloc : 向堆申请分配内存,不初始化
calloc : 向堆申请分配内存,初始化为0
realloc: 向堆申请分配内存,可调整大小
alloc : 向栈申请内存,不需手动释放
四个函数的声明分别是:
void * __cdecl alloca(size_t);
void* malloc(unsigned size);
void* calloc(size_t nelem, size_t elsize); //如果nelem=0,就相当于malloc,但他会初始化内存空间为0
void* realloc(void* ptr, unsigned newsize); //当ptr=NULL时,就相当于malloc
功能:改变mem_address所指内存区域的大小为newsize长度。
说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
推荐播客:http://blog.csdn.net/snlying/article/details/4005238