鱼C论坛

 找回密码
 立即注册
查看: 1807|回复: 0

[技术交流] 关于内存泄露

[复制链接]
发表于 2016-6-24 10:43:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 阁龙1427 于 2016-6-24 10:46 编辑

1-大家分析一下这段代码有没有内存泄露的情况出现:
2-另外如果不给stu1  stu2去单独分配空间的情况下 会发生什么神奇的事情呢
3-还有没有其他的方式给STU1 stu2来分配空间呢

注释:用cless并不是不知道班级的英文单词,只是class是关键词,不能用
  1. #include <stdio.h>
  2. #include <malloc.h>

  3. int main()
  4. {
  5.         typedef struct
  6.         {
  7.                 int name;
  8.                 int age;
  9.                 int grade;
  10.                 int cless;
  11.         }stu_info;


  12.     /*申请两个空间给 stu1和stu2用*/
  13.         stu_info*  stu1 = (malloc(sizeof (stu_info)));
  14.     stu_info*  stu2 = (malloc(sizeof (stu_info)));

  15.         /*对两个结构体赋值*/
  16.         stu1->name = 21;
  17.         stu1->age = 22;
  18.         stu1->grade = 1;
  19.         stu1->cless =2;

  20.         stu2->name = 31;
  21.         stu2->age = 32;
  22.         stu2->grade = 3;
  23.         stu2->cless =3;

  24.     /*打印 stu1 和 stu2 的元素的值 */
  25.         printf("stu1 name is %d\n",stu1->name);
  26.         printf("stu1 aage is %d\n",stu1->age);
  27.         printf("stu1 grade is %d\n",stu1->grade);
  28.         printf("stu1 cless is %d\n",stu1->cless);
  29.     printf("\n\n");
  30.         printf("stu2 name is %d\n",stu2->name);
  31.         printf("stu2 aage is %d\n",stu2->age);
  32.         printf("stu2 grade is %d\n",stu2->grade);
  33.         printf("stu2 cless is %d\n",stu2->cless);
  34.    
  35.         /*释放malloc申请的空间*/
  36.         free(stu1);
  37.         free(stu2);
  38.         while(1)
  39.         {;
  40.         }
  41.         return 0;
  42. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-17 18:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表