C언어에서 스택은 밑으로 쌓임.

int a = 10;  //이게 0x10000004이라 했을 때

float b = 20; //이건 0x10000000임.

*((&a) - 4) = 30; // 이건 0x0FFF FFF4를 30으로 바꾸는거.


만약에 *((&a) - 1) = 30을 하면 visual studio에서는 에러가 나고, gcc에서는 변화가 없음.