在C中,程序分配动态内存一般调用malloc(),但还有一个calloc(),本文对这两个函数进行简介。
1、malloc()
头文件:malloc.h 或 stdlib.h
函数名:extern void *malloc (size_t size)
功能:分配一块大小为size的动态内存,返回该内存的首地址。
附上glibc-2.26的英文注释:/* Allocate SIZE bytes of memory. */
2.calloc()
头文件:malloc.h 或 stdlib.h
函数名:extern void *calloc (size_t nmemb, size_t size)
功能:分配nmemb块大小为size的连续的动态内存,返回该内存的首地址,并将内存内的数据初始化为零。
附上glibc-2.26的英文注释:/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */
顺便附上几个与动态内存相关的函数:
extern void *realloc (void *ptr, size_t size):扩展ptr指向的动态内存,拓展的大小为size
附上glibc-2.26的英文注释:/* Re-allocate the previously allocated block in __ptr, making the new block SIZE bytes long. */
extern void free (void * ptr):释放ptr指向的动态分配内存。
附上glibc-2.26的英文注释:/* Free a block allocated by `malloc', `realloc' or `calloc'. */
附上一个挺详细的博客:http://blog.csdn.net/firecityplans/article/details/4490124/