我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:藏宝阁 > 地址代换 >

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

归档日期:08-18       文本归类:地址代换      文章编辑:爱尚语录

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

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

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

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

本文链接:http://kuenergyclub.com/dizhidaihuan/915.html