반응형
목차
[C Programming] Visual Studio 지역 변수의 스택 값 확인 예제
제가 현재 사용하고있는 IDE는 Visual Studio 2022 Community 버전입니다.
우선 예제로 사용할 코드는 아래와 같습니다.
예제 코드>>
#include <stdio.h>
void sum(int a, int b) {
int result = a + b; // 지역 변수 선언 및 초기화
printf("The sum of %d and %d is %d\n", a, b, result);
printf("The address of result variable: %p\n", (void*)&result);
// result 변수의 주소값 출력
}
int main() {
int x = 5; // 지역 변수 선언 및 초기화
int y = 3; // 지역 변수 선언 및 초기화
printf("The address of x variable: %p\n", (void*)&x);
printf("The address of y variable: %p\n", (void*)&y);
// x와 y 변수의 주소값 출력
sum(x, y);
// sum() 함수 내에서 선언된 result 변수의 주소값에는 접근할 수 없습니다.
return 0;
}
12번 x 변수 선언 부터 Debug를 진행하겠습니다.
위 그림을 보시면 좌측 중간에 빨간색 원이 보이실 겁니다. 빨간색 원을 만드는 방법은 마우스로 해당 위치에서 클릭하시면 됩니다. 의미는 12번 라인 부터 디버깅을 진행하겠다는 의미입니다.
상단에 위 모양을 클릭하시면 디버깅이 진행 됩니다.
디버깅이 진행된 전체 화면은 위와 같습니다. 왼쪽 하단의 Locals를 통해서 스택 메모리의 값들을 확인할 수 있습니다.
F11 키를 누르면 Debugging Step Into가 동작해서 위 그림과 같이 왼편의 화살표가 한칸씩 이동하면서 지역 변수(Local Variable)의 변화를 알려 줍니다. 처음에 Garbage 값들에서 점차 값들이 채워 집니다.
그림처럼 Sum 함수가 진행될때는 x, y 지역 변수 값들이 사라지게 됩니다.
[C Programming] 예제 코드 다운로드
반응형
'C언어 C++ Programming' 카테고리의 다른 글
[C++]변수 초기화를 해야하는 이유, 할당(Variable Initialization, Assignment) (0) | 2023.07.18 |
---|---|
[C언어] Visual Studio 디버깅에서 메모리 확인 예제(Debugging, Memory) (0) | 2023.07.18 |
[C언어] 라이브러리 만들기, 읽기(dll, lib, 외부 코드, library import, 추가) (0) | 2023.07.14 |
[C언어] 텍스트 파일 읽기, 예제 풀이로 이해하기(Text file, Read) (0) | 2023.07.13 |
[C언어]지역변수와 스택메모리란? 예제로 이해하기(Local Variable, Stack) (0) | 2023.07.12 |