为了账号安全,请及时绑定邮箱和手机立即绑定

关于c语言实现链表内存的问题

关于c语言实现链表内存的问题

慕粉1600176492 2017-04-17 22:21:17
#include<stdio.h> #include<stdlib.h> #define N 6 int main() { typedef struct st { int num; struct st *next; }node; node *p, *q, *h; p = (node *)malloc(sizeof(node)); h = p; for (int i = 0; i < N; i++) { p->num = i + 0; q = p; //保存已完成的数据的地址 if(i==N-1) { p->next=NULL;break; } p = (node *)malloc(sizeof(node));//开辟新的地址  q->next = p;//让完成数据的地址和新的地址关联  } p = h; while (p) { printf("%d\n", p->num);//输出当前节点的数据 q = p->next;   //更新到下一节点的地址 p = q; //更新下一节点 } p = h; while(p) { q=p->next; free(p); p = q; }  free(h); system("pause"); return 0; }请各位大神帮忙看下,是否让申请的内存充分利用,释放的时候应该都释放了吧?在这个代码里我没有用到 h->next ,我觉得反正 h 这个领头的也不存数据, 用h 和h->next应该没区别吧?
查看完整描述

目前暂无任何回答

  • 0 回答
  • 1 关注
  • 1653 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信