[英]About Memory Management When mentioning C++
当有人提到C ++能够执行的内存管理时 ,我怎么看这东西? 从理论上讲,这就像猜测吗?
我参加了逻辑设计入门课程,它涵盖了数字 , 布尔代数和组合逻辑的系统 ,这对您有帮助吗?
如此说来,在Visual Studio中 ,是否存在某种可视化内存的工具,我希望这里不要荒谬吗?
C ++具有各种内存区域:
new
或new[]
(C ++的首选方法)或malloc
(从C继承的较低级函数)分配的“堆”内存,分别使用delete
, delete[]
或free
。 堆很重要,因为它支持对任意数量的内存的运行时请求,并且使用一直持续到显式使用delete
或free
为止,而不是与每个堆栈内存的特定函数调用的生存期绑定在一起。
我不知道有什么有用的工具可以对正在运行的C ++程序的整体内存使用情况进行可视化和分类,更不用说将其与源代码中的指针当前具有多少内存相关联了。 作为一个非常通用的准则,建议以这样一种方式编写代码:仅在程序准备将指针指向某物时才引入指针,而当它们不再指向某物时它们就会超出范围。 如果这不切实际,则将它们设置为NULL
(0)可能会很有用,这样,如果您在调试器中监视正在执行的程序,则可以告诉您指针并非指向该点的合法数据。
在Visual Studio中,有一个内存窗口(Alt + 6),您可以在调试过程中手动读取/写入内存,前提是它是您要执行的操作的有效内存位置。
在Windows平台上,您可以使用诸如perfmon.exe,taskmgr.exe之类的工具以及sysinternals的许多其他工具来初步了解内存管理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.