码迷,mamicode.com
首页 > 其他好文 > 详细

内存地址的传递问题

时间:2019-12-29 16:34:51      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:四种   释放   返回   问题   方法   有意思   内存   全局   全局变量   

背景

最近看到一篇比较有意思的博客,标题是“C语言返回字符串的四种方法”,特对它作一次总结。

核心就是,如何保证一个指针变量在传递的过程中,其在内存不被自动释放,从而避免内存地址的非法引用。

相关知识点

  • 指针(内存地址)在函数调用开始时,形参是对实参的内容浅拷贝,保存在栈中,调用结束后将被系统回收

  结论:不可以返回函数形参。

  • 静态数据的生命周期是从定义开始到程序结束

  结论:可以返回局部作用域的静态数据的指针

  • 堆空间的资源一般情况下由程序员手动申请和手动释放

  结论:可以返回指向堆空间的指针

总结

这里已知的安全的地址传递方式有四种:

  • 传递地址的地址(更深一级指针)
  • 传递静态数据的地址
  • 传递指向堆空间的地址
  • 传递全局变量的地址

内存地址的传递问题

标签:四种   释放   返回   问题   方法   有意思   内存   全局   全局变量   

原文地址:https://www.cnblogs.com/orejia/p/12115289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!