如何解决我试图了解内存分配的工作原理以及发生的时间
所以!我是C ++的新手,正在尝试了解一些基本的知识,例如内存分配。我需要知道是在运行时还是在编译代码后分配了内存,并且在运行时启动时,我的操作系统已经知道我需要x内存才能运行程序。如果在运行时分配了内存,那么最后要使用delete释放为动态变量分配的内存的意义...因为程序将结束并且所有内存都已被释放。对不起,我的英文不好,我是罗马尼亚语。谢谢!
解决方法
在运行时分配内存。编译器不可能浏览代码并始终知道需要多少内存,因此,每当调用new或malloc时,它都必须从操作系统中请求那么多字节。
您必须释放内存的原因仅仅是因为计算机上的内存是有限的,并且不应使用过多的内存。如果您使用的机器数量超出了计算机的可用容量,则将无法再分配更多的资源。
,我需要知道是在运行时还是在代码编译后分配了内存...
它在运行时,因此名为 dynamic 。
...并且运行时启动时,我的操作系统已经知道我需要x内存才能运行程序...
不,内存是在运行时分配的,系统又不知道在编译时需要多少内存,因此名称为 dynamic 。
如果在运行时分配了内存,那么最后要使用delete释放为动态变量分配的内存的意义...因为程序将结束并且所有内存都将被释放。
在一个小的示例程序中,您经常在执行结束时看到delete
,那只是说明性的,当然,当程序执行结束时,内存还是会被释放。
但是您必须记住,普通程序较大。内存已分配和释放,程序将继续运行,其中一些会持续很长时间,而且如果没有内存管理,在某些时候情况可能会非常错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。