我使用两个变量,其中内存是动态分配的,我打印内存位置,但它们不是连续的.为什么?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *a = malloc(sizeof(int));
int *b = malloc(sizeof(int));
printf("\n a=%p \t b=%p \n",a,b);
}
Run Code Online (Sandbox Code Playgroud)
我得到的答案(在Linux中)是
第一次:
a=0x20a0010 b=0x20a0030
Run Code Online (Sandbox Code Playgroud)
第二次:
a=0x657010 b=0x657030
Run Code Online (Sandbox Code Playgroud)
第3次:
a=0x139e010 b=0x139e030
Run Code Online (Sandbox Code Playgroud)
为什么第1次,第2次和第3次的内存位置a和b变量之间的确切差异是什么?
这与分页内存有关吗?
我的处理器是64位.