首页 / 知识
关于 oop:C – “堆栈自动”是什么意思?
2023-04-13 08:38:00

C++ - What does "Stack automatic" mean?我在网上浏览的时候看到了这个帖子,里面有这个
我做过一点 C 和 C 代码,但只是顺带一提,从来没有什么严肃的事情,但我只是好奇,它到底是什么意思? 谁能举个例子? 堆栈对象由编译器自动处理。 当范围离开时,它被删除。
当您对"新"对象执行相同操作时,您会遇到内存泄漏:
b 没有被破坏,所以我们失去了回收 b 拥有的内存的能力。更糟糕的是,对象无法自行清理。 在 C 中以下是常见的:
在 C 中我们这样写:
当我们忘记在 C 示例中调用 fclose 时,文件不会关闭并且可能不会被其他程序使用。 (例如它不能被删除)。 另一个例子,演示对象字符串,它可以被构造、分配给并在退出范围时被销毁。
除了其他答案: C 语言实际上有 以下两个声明是等价的:
因为关键字完全没用,它实际上会在下一个 C 标准(a€?C 0xa€?)中被回收并获得新的含义,即它让编译器从其初始化中推断变量类型(如C# 中的
如果我错了,请纠正我,但我认为复制操作对于充分利用自动堆栈清理并不是强制性的。 自动堆栈是分配在当前方法堆栈上的变量。设计一个可以充当 Stack 自动的类背后的想法是,应该可以通过一次调用完全初始化它并用另一个调用销毁它。析构函数必须释放对象分配的所有资源,并且其构造函数返回一个已完全初始化并准备好使用的对象。与复制操作类似——该类应该能够轻松地制作副本,这些副本功能齐全且独立。 此类的用法应该类似于原始int、float等的使用方式。你定义它们(最终给它们一些初始值)然后传递它们,最后让编译器进行清理。 C 中的变量既可以在栈上声明,也可以在堆上声明。当您在 C 中声明一个变量时,它会自动进入堆栈,除非您明确使用 new 运算符(它进入堆)。
这对内存的管理方式产生了很大的影响。当变量在堆栈上声明时,它将在超出范围时被释放。在对象上显式调用 delete 之前,堆上的变量不会被销毁。 |
最新内容
相关内容
python怎么打开浏览器
python怎么打开浏览器,培训,标准,网址,模块,以上,方法,更多,内容,python打开浏览器的三种方法1.通过导入os模块,调用startfile方法来打开浏python浏览器能运行python吗
python浏览器能运行python吗,代码,平台,智能,培训,灵活,项目,文件,语法,插件,浏览器,py文件不是html文件,当然不能在浏览器里打开。py文件可以浏览器的默认CSS样式表
浏览器的默认CSS样式表,浏览器的默认CSS样式表,默认,浏览器,样式表,浏览,Browsers' default CSS stylesheets是否有针对不同浏览器关于安全性:禁用浏览器“保存密码”
关于安全性:禁用浏览器“保存密码”功能,关于安全性:禁用浏览器“保存密码”功能,医疗保健,政府,机构,我会,Disable browser 'Save Pa关于winapi:那我在WPF上缺少什么呢?
关于winapi:那我在WPF上缺少什么呢?,关于winapi:那我在WPF上缺少什么呢?,视频播放,应用程序,界面,我有一个,So what am I missing with t关于javascript:我在哪里可以学习jQ
关于javascript:我在哪里可以学习jQuery? 这值得么?,关于javascript:我在哪里可以学习jQuery? 这值得么?,证明,学习,我在,有用,Where can I关于内存:“堆栈溢出”如何发生以及
关于内存:“堆栈溢出”如何发生以及如何防止它?,关于内存:“堆栈溢出”如何发生以及如何防止它?,溢出,堆栈,确保,方法,How does a “stac关于语言不可知:基于浏览器的游戏 &
关于语言不可知:基于浏览器的游戏 选择哪个框架?,关于语言不可知:基于浏览器的游戏 选择哪个框架?,文本,浏览器,开发,很难,Browser-bas我在哪里可以得到Antlr Ant任务?
我在哪里可以得到Antlr Ant任务?,我在哪里可以得到Antlr Ant任务?,调用,我在,找不到,试图,Where do I get the Antlr Ant task?我试图关于ajax:是否有某种方法可以将数据
关于ajax:是否有某种方法可以将数据从Web服务器推送到浏览器?,关于ajax:是否有某种方法可以将数据从Web服务器推送到浏览器?,查找,服务关于.net:在C#中浏览目录
关于.net:在C#中浏览目录,关于.net:在C#中浏览目录,控件,操作,显示,选择,Browse for a directory in C#如何向用户显示允许他/她选择目关于javascript:在浏览器中获取选定
关于javascript:在浏览器中获取选定的文本,跨平台,关于javascript:在浏览器中获取选定的文本,跨平台,文本,选择,浏览器,用户,Getting sel