Saya memiliki kode ini yang ditulis dalam c:
int main(){
double x, y;
int a, b, c;
int *p;
dan saya punya:
sizeof(int)=4
sizeof(double)=8
Apakah struktur memorinya seperti ini? Lebih detail dalam mode grafis:
IN MEMORY:(whole memory)
LE = Little Endian (INTEL)
BE = Big Endian (MIPS)
------------------
0x00000000 | | ?
------------------
. .
. .
. .
------------------
0x0012ff60 | 64(LE) 00(BE) |
------------------
------------------
0x0012ff61 | ff(LE) 12(BE) |
------------------
------------------
0x0012ff62 | 12(LE) ff(BE) |
------------------
------------------
0x0012ff63 | 00(LE) 64(BE) |
------------------
------------------
0x0012ff64 | 00(LE) 00(BE) | c if c = 256 (base10)
------------------ c = 0x00000100 (base16)
------------------
0x0012ff65 | 01(LE) 00(BE) | c 0x0012ff64 points to c variable
------------------ 0x0012ff64 is a pointer
------------------
0x0012ff66 | 00(LE) 01(BE) | c
------------------
------------------
0x0012ff67 | 00(LE) 00(BE) | c
------------------
------------------
0x0012ff68 | | b
------------------
.
.
.
------------------
0x0012ff6c | | a
------------------
.
.
.
------------------
0x0012ff70 | | y
------------------
------------------
0x0012ff71 | | y
------------------
------------------
0x0012ff72 | | y
------------------
------------------
0x0012ff73 | | y
------------------
------------------
0x0012ff74 | | y
------------------
------------------
0x0012ff75 | | y
------------------
------------------
0x0012ff76 | | y
------------------
------------------
0x0012ff77 | | y
------------------
.
.
.
------------------
0x0012ff78 | | x
------------------
.
.
.
------------------
0xfffffffff | | ?
------------------
Pertanyaan saya: saat kita memasukkan sth ke dalam tumpukan, apakah kita melakukan ini?
1) Maksud saya, kita mendorong data di akhir tumpukan dengan nilai alamat yang lebih tinggi?
2) atau kita mendorong data di tumpukan teratas dengan nilai alamat yang lebih rendah?
3) berapa banyak alamat memori yang diambil setiap tumpukan? Tergantung pada apa?
Terima kasih