ฉันมีโปรแกรม ac ที่มีลักษณะเช่นนี้
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