c语言常用内存分配函数详解
2007-04-24 16:24
1276 查看
NAME
malloc, free, realloc, calloc - main memory allocatorSYNOPSIS
char *malloc (size) unsigned size;free (ptr)
char *ptr;
char *realloc (ptr, size)
char *ptr;
unsigned size;
char *calloc(nelem, eisize)
unsigned elem, eisize;
DESCRIPTION
malloc and free provide a simple general-purpose memory allocation package. malloc returns a pointer to a block of at least size bytes beginning on a word boundary.The argument to free is a pointer to a block previously allocated by malloc; this space is made available for further allocation, but its contents are left undisturbed.
Grave disorder will result if the space assigned by malloc is overrun or if some random number is handed to free.
malloc allocates the first big enough contiguous reach of free space found in a circular search from the last block allocated or freed, coalescing adjacent free blocks as it searches. It calls sbrk (see brk(2P) ) to get more memory from the system when there is no suitable space already free.
realloc changes the size of the block pointed to by ptr to size bytes and returns a pointer to the (possibly moved) block. The contents will be unchanged up to lesser of the new and old sizes.
realloc also works if ptr points to a block freed since the last call of malloc, realloc, or calloc; thus sequences of free, malloc, and realloc can exploit the search strategy of malloc to do storage compaction.
calloc allocates space for an array of nelem elements of size eisize. The space is initialized to zeros.
Each of the allocation routines return a pointer to space suitably aligned (after possible pointer coercion) for storage of any type of object.
DIAGNOSTICS
malloc, realloc and calloc return a null pointer (0) if there is no available memory or if the arena has been detectably corrupted by storing outside the bounds of a block. When realloc returns 0, the block pointed to by ptr may be destroyed.相关文章推荐
- C语言一些常用内存分配函数
- C语言内存分配及函数返回值的解析。
- 程序员之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程能够分配的内存大小)
- C语言三个内存分配函数比较,malloc calloc realloc
- C语言03 - 函数指针、内存分配、字符串使用
- ROUND_UP函数详解(STL内存分配的时候 内存对齐上调大小的函数)
- MFC中常用的内存分配及释放函数
- C语言strstr()函数常用示例详解[求一个字符串在另一个字符串中出现的次数]
- c语言的函数内存分配及指针函数的用法
- 内存分配函数详解
- 深入C语言内存区域分配(进程的各个段)详解(转)
- 程序猿之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程可以分配的内存大小)
- 黑马程序员——C语言——常见内存分配函数和构造类型
- linux 常用内存分配函数小结
- C语言中的动态内存分配详解
- C语言之内存分配例题详解
- C语言string.h中常用函数详解
- C语言学习9: malloc动态内存存储,动态内存分配去空格字符增长版,动态内存分配去符号incr增长版,型参和返回值都是int型的函数的指针,main函数的地址也可以用指针指向,typedef定义函数指针,函数定义与嵌套的作用,返回函数指针类型,const作用
- C语言calloc()函数:分配内存空间并初始化
- C语言malloc,calloc,realloc,free内存分配函数学习笔记