C언어에서 스택은 밑으로 쌓임.
int a = 10; //이게 0x10000004이라 했을 때
float b = 20; //이건 0x10000000임.
*((&a) - 4) = 30; // 이건 0x0FFF FFF4를 30으로 바꾸는거.
만약에 *((&a) - 1) = 30을 하면 visual studio에서는 에러가 나고, gcc에서는 변화가 없음.
C언어에서 스택은 밑으로 쌓임.
int a = 10; //이게 0x10000004이라 했을 때
float b = 20; //이건 0x10000000임.
*((&a) - 4) = 30; // 이건 0x0FFF FFF4를 30으로 바꾸는거.
만약에 *((&a) - 1) = 30을 하면 visual studio에서는 에러가 나고, gcc에서는 변화가 없음.
그리고 *((&a) - 4) = 30;로 하면 변화 없음.
OS마다 다른거 아니였나여... MS는 반대라고 어디서 들은거 같은데
ㅇㅇ//아니였->아니었 (아니었 아니에요 아니어도 아니어서는 예외) [리듬 맞춤법 봇♬]