huchiyv 2022-12-01 16:06 采纳率: 42.9%
浏览 14
已结题

关于在函数中使用结构体的疑惑

问题背景

实现双向循环链表的初始化

尝试结果

目前已经实现了,但是有一个问题想请教一下关于函数的返回的问题

明确问题

在我这个while循环里面我用的是LinkList 是typedef的相当于NODE *,
在这里我用malloc函数回到主函数之后L就是初始化成功的头节点了,
但是我想问如果这里我直接用NODE,然后就可以不用malloc了,
如果这样的话回到主函数之后L能否初始化成功?如果不能原因是不是因为返回之后在这个函数里面申请的NODE节点全部释放了?如果能又是为什么呢?希望得到完整回答。

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-12-01 16:15
    关注

    如果你是在while中定义NODE对象,那么肯定不行,因为局部变量在程序运行完while后就被系统回收空间了,外面访问不受控内存,会出问题的
    如果不能原因是不是因为返回之后在这个函数里面申请的NODE节点全部释放了====对的。局部变量生命期只在所在代码块中。离开代码块就不能用了。
    malloc申请的空间相当于全局的,除非free,否则一直占用,所以满大街都可以用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
  • ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
  • ¥15 微信小程序运行一项功能时,弹出未知错误弹框,检查代码没有问题
  • ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
  • ¥15 python模糊字匹配函数问题
  • ¥20 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值
  • ¥30 数据库软件的安装方法
  • ¥15 一道以太网数据传输题
  • ¥15 python 下载群辉文件