正文

c语言内存分配函数练习2007-08-18 22:52:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/progfan/28641.html

分享到:

//内存分配函数练习/* 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);}

阅读(65) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册