以此C代码为例
#include <stdio.h>
#include <stdlib.h>
int main() {
int x;
int* y = (int *) malloc(10*sizeof(int));
printf("%p\n",&x);
printf("%p\n",y);
printf("%p\n",&(y[1]));
while(1);
return 0;
}
将打印看起来像这样的虚拟地址
0x7ffd4e96d214
0x908010
0x908014
每次运行二进制文件时虚拟地址都会不同,这让我想到了如何为程序实际确定虚拟地址?