我有一个类似于下面这样的C程序
main.c
#include <stdio.h>
#define SOME_VAR 10
static int heap[SOME_VAR];
int main(void) {
printf("%p", heap);
return 0;
}
当我运行编译后的程序几次时,它会输出这个
0x58aa7c49060
0x56555644060
0x2f8d1f8e060
0x92f58280060
0x59551c53060
0xd474ed6e060
0x767c4561060
0xf515aeda060
0xbe62367e060
为什么它总是以060结尾?而且数组存储在堆中吗?
编辑:我使用的是Linux,并且开启了ASLR。我使用gcc编译了程序。