小编Kro*_*szi的帖子

为什么我的 C 程序中的虚拟地址如此之大?

我最近了解了虚拟内存和分页,并且编译器只生成从 1 开始并简单向上计数的虚拟地址。我想我会测试这个并在下面写了一个简短的 C 程序,它实例化一个全局变量并打印它的地址,期望一个非常小的值,因为 CPU 只看到虚拟地址,但我得到4247584。这是怎么回事,我的假设是错误的吗?如果可能的话,显示从 1 开始生成虚拟地址的程序是什么?

我的程序:

#include <stdio.h>

int x = 0;

int main(){
    printf("%d\n", &x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

(我在 Windows 10 上使用 gcc 4.8.1)

c virtual-memory

0
推荐指数
1
解决办法
60
查看次数

标签 统计

c ×1

virtual-memory ×1