Rylah's Study & Daily Life

Modern C++ : 01. Memory Structure - Variables in Memory 본문

Study/C++

Modern C++ : 01. Memory Structure - Variables in Memory

Rylah 2022. 2. 3. 04:46
#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
 

아래로 쌓여가는 방식이다.

 

출처

https://youtu.be/cTcfCG1s4KI