Xin chào anh chị, em đang học quyển "Nghệ thuật tận dụng lỗi phần mềm" có đoạn sau

em chưa hiểu 1 số vấn đề xin anh chỉ giải đáp.
1. Em chạy chương trình, địa chỉ COOKIE (0x7fff63fd40ac) < địa chỉ BUF (0x7fff63fd40b0). Theo như đoạn trên, em nghĩ phải là cooke > buf.
2. Em chưa hiểu stack sẽ lưu một số lúc ta nhập vào hoạt động như nào, xin anh chị chỉ bảo cho em ạ. Em cảm ơn anh chị trong diễn đàn ạ.
Code:
#include <stdio.h>
int main() {
int cookie;
char buf[16];
printf("&buf: %p, &cookie: %p\n", buf, &cookie);
gets(buf);
if (cookie == 0x41424344) {
printf("You win\n");
}
}