Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12396736
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: PHP

2011-06-17 08:40:35

  1. /* Name malloc.c
  2.  * Author dyli
  3.  * date 20110616
  4.  * Description 加深对malloc()与free()函数的理解
  5.  *                
  6.  * */


  7. #include <stdio.h>

  8. /***malloc()函数************************************************
  9. *    函数功能:    向系统申请分配size Byte大小的内存块
  10. *    函数原型: void *malloc(size_t size);
  11. *    返回值 :    成功,返回一个void类型指向被分配内存的指针;失败,返回NULL。
  12. *                
  13. *    所需库 :    <stdio.h>
  14. * 备注 :     内存不再使用时要用free()将内存块释放
  15. *                void 类型是无类型的指针,使用时可以转换成任意类型的指针
  16. ****************************************************************/

  17. /***free()函数************************************************
  18. *    函数功能:    释放malloc()分配的内存块
  19. *    函数原型: free(内存地址指针)
  20. *    返回值 :    
  21. *                
  22. *    所需库 :    <stdio.h>
  23. * 备注 :    
  24. ****************************************************************/
  25. int g_var_a=0;
  26. char g_var_b;

  27. int main()
  28. {
  29.     //以下四个数据存储在 栈区
  30.     int var_a;
  31.     char var_str[] ="string1";
  32.     char *p_str1,*p_str2;
  33.     char *p_str3 ="string2";
  34.     static int var_b =100;

  35.     //以下两个数据存储在 堆区    
  36.     p_str1=(char*)malloc(1024);//在堆区分配1024B内存
  37.     p_str2=(char*)malloc(2048);//------------------------->malloc()分配内存块,void型指针转换成char型
  38.     free(p_str1);                //------------------------>free()释放malloc申请的内存块
  39.     free(p_str2);
  40.     return 0;
  41. }
阅读(2286) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~