当有人提到 内存管理 c++ 能够做到时,我怎么看这个东西?这在理论上是不是像猜测一样?
我参加了逻辑设计介绍类(class),它涵盖了数字系统和 bool 代数和组合逻辑,将这有帮助吗?
所以说在 Visual Studio 中,是否有某种工具可以可视化内存,我希望我在这里不是荒谬的?
谢谢。
最佳答案
C++有多种内存区域:
- 用于全局变量和静态变量的空间,由编译器预先分配
- “堆栈”内存,用于在函数调用期间保留调用者上下文、传递一些函数参数(其他可能适合 CPU 寄存器)和局部变量
- 使用
new
或new[]
(C++ 的首选方法)或malloc
(继承的低级函数)分配的“堆”内存来自 C),并分别使用delete
、delete[]
或free
发布。
堆很重要,因为它支持对任意数量内存的运行时请求,并且使用一直持续到显式使用 delete
或 free
,而不是被根据堆栈内存与特定函数调用的生命周期相关联。
我不知道有什么有用的工具可用于可视化和分类正在运行的 C++ 程序的整体内存使用情况,更不用说将其与源代码中的哪些指针当前关联了多少内存相关联了。作为一个非常通用的准则,鼓励以这样一种方式编写代码:仅当程序准备好将指针指向某物时才引入指针,而当它们不再指向某物时,它们就会超出范围。当这不切实际时,将它们设置为 NULL
(0) 会很有用,这样如果您在调试器中监视正在执行的程序,您就可以知道指针并不意味着指向合法那时的数据。
关于c++ - 关于内存管理 一提到C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341870/