char *ptr = (char*) malloc(40);
printf("%u",ptr);
56737856 (some output)
Run Code Online (Sandbox Code Playgroud)
现在,如果我不正确,我们上面看到的输出不是物理地址,而是来自虚拟地址空间.我对么?
有没有办法看到实际的实际地址?反之亦然(如果我的上述假设是错误的),并且malloc的所有内部实现都必须使用jemalloc算法吗?
dus*_*uff 11
您在用户空间应用程序中看到的所有地址都是虚拟地址
物理地址仅与内核有关.从虚拟地址到物理地址的映射很复杂,因为:
在一些非常不寻常的情况之外(主要是与硬件混乱),你不应该关心物理地址.