C中4个动态内存函数

原型:extern void *calloc(int num_elems, int elem_size); 用法:#include <alloc.h> 功能:为具有num_elems个长度为elem_size元素的数组分配内存 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。

举例:calloc.c

#include <syslib.h>#include <alloc.h>main(){char *p;clrscr();// clear screenp=(char *)calloc(100,sizeof(char));if(p)printf(,p);elseprintf();free(p);getchar();return 0;}

原型:extern void *malloc(unsigned int num_bytes); 用法:#include <alloc.h> 功能:分配长度为num_bytes字节的内存块 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。

举例:malloc.c

#include <syslib.h>#include <alloc.h>main(){char *p;clrscr();// clear screenp=(char *)malloc(100);if(p)printf(,p);elseprintf();free(p);getchar();return 0;}

原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法:#include <alloc.h> 功能:改变mem_address所指内存区域的大小为newsize长度。 说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。

举例:realloc.c

#include <syslib.h>#include <alloc.h>main(){char *p;clrscr();// clear screenp=(char *)malloc(100);if(p)printf(,p);elseprintf();getchar();p=(char *)realloc(p,256);if(p)printf(,p);elseprintf();free(p);getchar();return 0;}

原型:extern void free(void *p); 用法:#include <alloc.h> 功能:释放指针p所指向的的内存空间。 说明:p所指向的内存空间必须是用calloc,malloc,realloc所分配的内存。如果p为NULL或指向不存在的内存块则不做任何操作。

举例:free.c

#include <syslib.h>#include <alloc.h>main(){char *p;clrscr();// clear screentextmode(0x00);p=(char *)malloc(100);if(p)printf(,p);elseprintf();getchar();free(p);// release memory to reuse itp=(char *)calloc(100,1);if(p)printf(,p);elseprintf();free(p);// release memory at program endgetchar();return 0;}

,是清晰的又是朦胧的,是一杯苦茶,最后却品出清雅之香。

C中4个动态内存函数

相关文章:

你感兴趣的文章:

标签云: