搜索

通过定义一个结构体再取地址的方式替换malloc语句为什么会出错?

gecimao 发表于 2019-08-11 13:33 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部你的第一个node是在函数node *create()的堆栈上建立的,函数一结束,堆栈上的内容就不保证了。

  你需要用全局变量或者静态变量(static)。更多追问追答追问那么,用malloc分配的空间难道就不是仅在函数的局部范围内起作用么?追答当然不是,malloc是在堆(heap)中分配的,不是在堆栈(stack)上分配的。追问So~用malloc分配的内存空间是不能被自动释放的,要用free函数手动释放——也是这个道理。

  展开全部这里node是一个局部变量,也是一个自动维护的变量,当这个函数完成后,编译系统会将其所占用的内存空间收回并销毁这个变量。

本文链接:http://reginaflowers.net/dizhidaihuan/1147.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部