//内存分配函数练习/* C语言的标准内存分配函数:malloc,calloc,realloc,free等。malloc与 calloc 的区别为1块与n块的区别:malloc调用形式为(类型*)malloc(size):在内存的动态存储区中分配一块长度为“size”字节的连续区域,返回该区域的首地址。calloc调用形式为(类型*)calloc(n,size):在内存的动态存储区中分配n块长度为“size”字节的连续区域,返回首地址。realloc调用形式为(类型*)realloc(*ptr,size):将ptr内存大小增大到size。free的调用形式为free(void*ptr):释放ptr所指向的一块内存空间。C++中为new/delete函数。*/#include <stdio.h>#include <stdlib.h> //malloc() calloc() free()//#include <alloc.h> //#include <stdlib.h>#include <ctype.h>main(){ int *p,i; p=(int *)malloc(300); //申请30个长度为int型的连续内存区域 if(p==NULL) return -1; //防止内存泄漏 for(i=0;i<300;i++){ p[i]=i; printf("%d\n",*(p+i)); } free(p); //释放内存 realloc(p,sizeof(int)*1000); //重新申请内存大小 if(p==NULL) return -1; for(i=0;i<1000;i++){ p[i]=i; printf("%d\n",*(p+i)); } free(p); p=(int *)calloc(1000,sizeof(int)); //申请1000块整型长度内存区域 if(p==NULL) return -1; for(i=0;i<1000;i++){ p[i]=i; printf("%d\n",*(p+i)); } free(p);}

评论