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 |