c++ - 假设的内存使用监控程序

标签 c++ c memory monitoring

是否有可能(我不关心实用性或有用性)编写一个 C 或 C++ 程序,以以下非常基本的方式监视内存使用情况?

<小时/>

鉴于声明变量而不为其赋值会导致其具有其内存位置中已有的值,因此可以创建一个大型数组(数千或数百万个元素)并将所有值保留为未分配状态。然后,要查看这些元素中的任何一个是否已被覆盖,我们只需重复将它们的当前值与先前的值进行比较即可。

<小时/>

我非常怀疑这是否像我上面提出的那么简单。假设我的怀疑是有根据的,那么问题出在哪里,更重要的是,我们是否可以通过一些创造性或深奥的代码来规避它?我想这个问题可归因于声明的未初始化元素不允许其他系统进程写入其内存地址。请给我一些指点! (嘻嘻)谢谢。

最佳答案

假设您的程序是用 C 编写的 创建大型数组受限于允许的可用内存范围以及操作系统如何限制您。

假设您创建了一个相当大的数组(未初始化)。 现在内存已分配给您的进程(您运行的程序),并且没有其他进程可以访问它! (操作系统的作用就是避免此类事情,虚拟化的基本要求)。

因此,由于没有其他进程可以访问,因此一旦分配给您,它的值就不会改变。

关于c++ - 假设的内存使用监控程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30612303/

相关文章:

IAR C/C++ 编译器与 GCC 的兼容性

c - 为什么要更改数组大小值来操作十进制字节?

c++ - 使用 CUDA 计算(非常)大的矩阵乘积

c++ - eclipse cdt - 更改项目类型

c++ - Arduino 字符串比较不起作用

c++ - Arduino C 函数将字符串转换为十六进制?

c - 如何将基于列表的文件复制到同样基于列表创建的相应文件夹中?

c - 在 C 中为结构内的指针分配和分配内存?

Java动态加载和卸载.java文件,垃圾收集?

c++ - c++ chrono存储time_point表达式必须是可修改的左值