问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

函数里的局部变量在函数退出后会不会自动释放?

发布网友 发布时间:2022-11-04 15:23

我来回答

3个回答

热心网友 时间:2023-11-06 17:28

会自动释放,指针也是一样的。

局部变量的作用域是定义该变量的函数或定义该变量的复合语句。只在定义它的函数或复合语句范围内有效,只能在定义它的函数或复合语句内才能使用它们。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。

扩展资料:

局部变量的作用域说明:

1、主函数main()中定义的变量也只在主函数中有效,而不能因为在主函数中定义在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。因为主函数也是一个函数,它与其他函数是平行关系。这一点是与其他语言不同的,应予以注意。

2、不同函数中可以使用相同名字的变量,它们代表不同的对象,分配不同的单元,互不干扰。例如,上面在f1函数中定义了变量b和c,倘若在f2函数中也定义变量b和c,它们在内存中占不同的单元,互不干扰。

3、形式参数是属于被调函数的局部变量。例如上面f1函数中的形参a,也只在f1函数中有效,其他函数可以调用f1函数,但不能引用f1函数中的形参a。

4、在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。

参考资料来源:百度百科-局部变量

热心网友 时间:2023-11-06 17:29

  局部变量肯定会释放,一般由内核在栈上释放,假如在函数里申请了,就得记得,那个申请到的地址释放后,指向的指针会成野指针。

关于局部变量里的函数:
  在C语言中在函数里面定义的局部变量确实会在函数结束之后被释放掉,
例如:
  void print()
  {int a=0;
  printf("%d",a);}
  当函数调用完之后a所占用的内存控件就被释放掉了,实际上局部变量的存储空间都是放在栈上面的,当函数返回之后,关于此函数的栈数据都被弹出,函数内部的局部变量占用的内存空间也被释放。但是你通过malloc函数分配的内存空间并不是在栈上,而是在另一个特殊的区域,也就是堆,堆中分配的内存是不能自动被释放的,必须要程序员手动释放,在c中提供了free函数对malloc分配的内存空间进行释放,如果不释放就会造成内存泄漏。
  不知道有没有面向对象语言的基础,例如C#,Java,C++。在C#和Java中都提供了一种叫垃圾回收器的机制,可以自动回收堆内存,而不需要程序员手动释放,这给了程序员极大的方便,也极大的避免了C和C++中的内存泄漏的问题。在C++中对象的创建如果是通过new关键字来创建的,那么对象使用完成之后必须通过delete关键字进行释放内存控件。因为实际上new关键字将对象分配在堆内存。

热心网友 时间:2023-11-06 17:29

这里有两个概念:指针变量本身;它所指向的内存区域。
函数退出后,指针变量本身(4个字节,一般在栈上)会被释放,但它所指向的内存区域不会被释放。
楼主的例子里,如果在method()里不释放b指向的空间,那么当method()退出时,b指向的空间不会被自动释放,而b这个指针变量不再存在了。这样一来b指向的空间就永远地泄漏了,因为再也没有指针指向它,你永远找不到它了。
如果出于某种原因不想在method里释放这块空间,可以在method()里把b的值赋给一个全局指针变量,以后再释放这个全局变量。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
脚崴了挂什么科、急急急 linux 解压缩工具--tar命令 生日祝福语闺蜜 简短独特暖心 QQ有哪些隐藏的图标??他们分别是什么??怎么样点亮?? QQ业务的各种图标怎么点亮? qq怎么点亮图标和名字 诗中书万象=求下联 大爱如山藏万象下联 中国电子展:电位器和可调电阻的区别是什么?这四点很明显 电位器的接线方法是什么 电位器的工作原理如何 C语言中全局变量只在该函数内有效吗? 关于C语言作业有几道题不会,求助 C语言中,main函数内定义的变量在整个程序范围内都有效吗? C++主函数中定义的变量在整个程序中都是有效的吗?为什么? 分分钟需要你这首歌在刺客五六七哪一集出现过 分别写出指挥丶非常丶忙碌丶感谢的近义词 称赞丶诚恳丶享用丶踏踏实实的近义词 束氏化妆品适合哪个年龄段 八二年bordeaux是什么 哈尔滨凯泽工程机械有限公司怎么样? “尽忠益时者虽仇必赏”什么意思? 高三15班的运动会口号啊 急 班级运动会积极口号 我们班是15班,求运动会口号 为什么很多人发语音喜欢说完再自己听一遍 怎样将自己的微博设置为只有自己可见? 惠州瑜伽教练培训哪家好 惠州瑜伽馆哪里有环境好性价比高一点的?求大神解答,急急急 博罗瑜伽馆哪一家最好 惠州瑜伽 NBA联盟中各队的主力有哪些?以及其绰号。 NBA中各个球队主力是谁 花卉榕树的养殖技术,如何修剪好看 花卉学怎样养榕树 青海湖,敦煌,张掖等环线游,怎么转更合理? 户头页是指哪一页 老司机送你一份最详细环游青海湖自驾游攻略,7月份青海自驾游有哪些注... 高中语文必修四古诗词翻译 sunshine的反义词是什么? sunshine的反意词是什么? sunshine的反义词的英文 sun shine是什么意思啊 他的反义词是什么啊 sunshine的所有解释,包括褒贬义 sunshine的所有解释,包括褒贬义 这个词用在男生身上有讽刺的意思么? 英文信件翻译 英文书信翻译(短信) 沃尔沃全新xc90称之雷神之锤什么意思 Thor是什么意思 《法语助手》法汉 宦妃天下男二是谁 《惑国毒妃》txt下载在线阅读全文,求百度网盘云资源