| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 九.C++网络空间安全学院之内存 -> 正文阅读 |
|
[C++知识库]九.C++网络空间安全学院之内存 |
什么是内存 内存是计算机中重要的部件之一。计算机中所有程序的运行都要在内存中进行。其作用是用于暂时存放cpu中的运算数据。 我们调试软件时所说的内存,往往是指虚拟内存?。 计算机中软件执行后 ,会用到很多数据 ,这些数据都是被装载在该程序的进程空间的虚拟内存中。 虚拟内存是在硬盘上的 ,操作系统为该软件的进程分配4GB的虚拟内存空间用来存放数据。 注意没注意一个细节,我说到了分配4GB的虚拟内存空间 为什么是4GB这个大小 ?这里指定的32位系统 所谓的32位指的是32位2进制 那么32位2进制,最小值是32位0 ,最大值是32位1。 用16进制表示,也就是 0- 0xffffffff , 最多可以表示这么多个地址? 和一堆房子的楼号一样(操作系统寻址方式导致的 也有办法扩展他的寻址范围? 例如大内存补丁) 一个地址到下一个地址的数据宽度为一个字节(如果这个宽度不是一字节,内存就可以扩大了) 一共0x100000000个地址,也就是这些字节 0x100000000/1024/1024/1024 = 4GB 正好等于4gb ,所以32系统为我们分配4gb虚拟内存 而计算机的发展 程序变大 32内存慢慢满足不了需求 所以出现了64系统 以后还会出现128系统 那么这么大的空间? 我们怎么找到我们想要的数据呢?就是通过的内存指针,也称内存地址 例如 我们有100个箱子? 箱子中存放的东西就是我们要找的数据 而箱子的编号就是内存地址 我们可以通过编号 很容易的找到我们想要找的东西 00000000-FFFFFFFF 实际上就是 0x100000000个箱子? 每个地址的编号就是内存地址,里面可以存放任意的数据 变量是存放在内存中的 &表示取地址 void main() { int a = 0x12345678; printf("address: %08X\n",&a); getchar(); } 0x0103F938就是变量a的地址 我们来调试一下 ,看看内存地址里的变化。 需要掌握的几个简单的操作如下: 下断点? : F9 单步调试:F10 ?进入调试: F5 停止调试:shift+F5 调试状态下并且断点断下的时候可以如下操作:???? 调试----窗口----选出需要的窗口? 例如内存窗口 这里是反着放的,我们后面会说原因 我们可以看到内存中数值的变化 常量是取不了地址的 已经直接被编入了指令中,但是编入代码指令中,代码指令也是在内存中的,本质也是有地址的 不止数据,变量,包括代码,资源所有的东西都是加载到虚拟内存中的 只是C++语法限制我们不能读取,我们可以通过其他方法读取 视频链接: 交流群:833075627 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:24:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |