c++ - 关于内存管理 一提到C++

标签 c++ visual-studio

当有人提到 内存管理 c++ 能够做到时,我怎么看这个东西?这在理论上是不是像猜测一样?
我参加了逻辑设计介绍类(class),它涵盖了数字系统 bool 代数组合逻辑,将这有帮助吗?
所以说在 Visual Studio 中,是否有某种工具可以可视化内存,我希望我在这里不是荒谬的?


谢谢。

最佳答案

C++有多种内存区域:

  • 用于全局变量和静态变量的空间,由编译器预先分配
  • “堆栈”内存,用于在函数调用期间保留调用者上下文、传递一些函数参数(其他可能适合 CPU 寄存器)和局部变量
  • 使用 newnew[](C++ 的首选方法)或 malloc(继承的低级函数)分配的“堆”内存来自 C),并分别使用 deletedelete[]free 发布。

堆很重要,因为它支持对任意数量内存的运行时请求,并且使用一直持续到显式使用 deletefree,而不是被根据堆栈内存与特定函数调用的生命周期相关联。

我不知道有什么有用的工具可用于可视化和分类正在运行的 C++ 程序的整体内存使用情况,更不用说将其与源代码中的哪些指针当前关联了多少内存相关联了。作为一个非常通用的准则,鼓励以这样一种方式编写代码:仅当程序准备好将指针指向某物时才引入指针,而当它们不再指向某物时,它们就会超出范围。当这不切实际时,将它们设置为 NULL (0) 会很有用,这样如果您在调试器中监视正在执行的程序,您就可以知道指针并不意味着指向合法那时的数据。

关于c++ - 关于内存管理 一提到C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341870/

相关文章:

c++ - Visual Studio 错误 C2327

asp.net - MSDeploy - 目标无法访问

visual-studio - 从 Visual Studio 中的待处理文件列表中删除未更改(内容相同)的内容?

c++ - 在 Arduino 中制作更好的循环

c++ - 什么时候static_casting ceil的结果会妥协?

c++ - 二维 vector push_back

visual-studio - 在 CentOS 中卸载 Visual Studio Core

c++ - D3D11 不知从哪里增加了引用计数?

c# - 每个实例或每个对象的虚拟表?

c# - "Csc"任务意外失败无法从程序集 mscorlib Version=4.0.0.0 加载类型 System.ValueTuple 3,