Rylah's Study & Daily Life
Modern C++ : 01. Memory Structure - Variables in Memory 본문
#include <iostream>
int main() {
int a = 0;
int b = 3;
int c = a + b;
double d = 2.5;
std::cout << "a:" << (long)&a << std::endl;
std::cout << "b:" << (long)&b << std::endl;
std::cout << "c:" << (long)&c << std::endl;
std::cout << "d:" << (long)&d << std::endl;
return 0;
}
<Run in Linux(Ubuntu) - g++>
<Run in Linux(Ubuntu) - clang++>
<Run in Windows - MSVC>
d (address : 649066472) |
c (address : 649066436) |
b (address : 649066404) |
a (address : 649066372) |
<Stack> 공간에서 메모리의 암시적인 형식
d 6472 |
d Area | d Area | d Area | d Area | d Area | d Area | |||
d Area | d Area | d Area | d Area | d Area | d Area | d Area | d Area | d Area | c 6436 |
c Area | c Area | c Area | c Area | c Area | c Area | c Area | c Area | c Area | c Area |
c Area | b 6404 |
b Area | b Area | b Area | b Area | b Area | b Area | b Area | b Area |
b Area | b Area | b Area | a 6372 |
a Area | a Area | a Area | a Area | a Area | a Area |
a Area | a Area | a Area | a Area | a Area | |||||
위 코드로 나온 형식을 참조로 그려본 메모리 명시적 할당 형식
0 (0xFFFF) |
3 |
a +b |
2.5 |
↓ |
아래로 쌓여가는 방식이다.
출처
'Study > C++' 카테고리의 다른 글
Modern C++ : 01. Memory Structure - Variables Types2 (변수 타입 in Memory) (0) | 2022.02.03 |
---|---|
Modern C++ : 01. Memory Structure - Variables Types1 (변수 타입 in Memory) (0) | 2022.02.03 |
Modern C++ : 06. Static Members (0) | 2021.12.05 |
Modern C++ : 06. Object Alignment (0) | 2021.12.05 |
Modern C++ : 06. OOP Intro (0) | 2021.12.05 |