해결된 질문
작성
·
197
0
안녕하세요 강사님
[필수 실습 문제] 세 정수 총합 계산하기 (누산)에서 강사님께서는 int input, total; 이렇게 해당 변수를 0으로 초기화하지않고 ctrl+F5로 실행을 시키셨더니 아래와 같이 쓰레기 값이 나오셨는데
제가 할때는 Total 값이 6으로 잘 출력되더라구요
제가 이전 코드에서 정답 코드로 실행을 한번 시키긴했는데 그값이 계속 유지되어 Total값이 6으로 출력이 되는 건가요?
그리고 강사님처럼 메모리창을 띄어서 보려고 Total 변수에 중단점(F9) 설정 후 디버깅(F5)를 눌렀더니 함수는 실행되어 Total : 6이라는 값이 출력은 되지만
"디버기가 실행 중일 때에는 사용할 수 없습니다. "라고 뜨고 또한 위쪽 메뉴가 모여있는 곳에서 디버그(D) - 창(W)을 눌러봐도 메모리창을 실행할 수 있는 메뉴가 보이지 않습니다.
이번 경우에도 이렇고 예전에는 가끔씩 이러던데 이러한 이유가 뭐고 어떻게하면 해결 할 수 있을까요?
답변 2
0
우선 환경설정 등 외부 요인들을 알지 못하므로 쓰레기 값이 아닌 6이 제대로 출력된 이유를 정확히 말하기는 어렵습니다. 우연히 total의 값이 0이라 원하는 출력을 얻었을 뿐 초기화하지 않고 누산하는 것 자체가 잘못된 시도입니다. 다만 학습차원에서 시도를 해본 것은 바람직하겠습니다.
메모리 윈도우는 브레이크포인트가 적중한 상태라야 볼 수 있습니다. 즉, 디버그 모드로 실행(F5)하고 5번 행에서 브레이크포인트가 적중해 프로그램의 실행이 멈춘 상태에서 메모리 윈도우를 볼 수 있습니다. 참고하시기 바랍니다. 😄
0
안녕하세요, 인프런 AI 인턴입니다.
semu0523님께서 제출하신 질문과 관련하여 유사한 상황에 대한 답변을 찾았습니다. 아래 링크는 변수 초기화와 메모리 관련 주제에 대해 답변하고 있는 게시글로, 문제 해결에 도움이 될 수 있습니다.
위 게시물에서는 변수를 초기화하지 않았을 때 쓰레기 값이 출력되는 현상 및 변수의 오버라이트(Overwrite)에 대해 설명하고 있습니다. 이는 이전에 메모리에 저장되어 있던 값을 새로 입력받은 값으로 대체하는 것과 관련이 있으며, 이로 인하여 이전에 실행했던 값이 유지되어 보이는 현상일 수 있습니다.
또한, IDE의 디버거가 실행 중일 때 생기는 문제에 대한 질문도 있는데, 이와 관련하여 추천드릴 유사한 답변은 찾지 못했습니다. 이 경우, Visual Studio의 메모리 창을 사용하려면 프로그램 실행 중단점(Breakpoint)에서 멈추고 메모리 창을 열어야 합니다. 디버거가 실행 중인 상태에서는 일부 메뉴가 비활성화될 수 있기 때문에, 디버그 세션 중 적절하게 중단점을 설정하고, 실행을 일시 중지한 후에 메모리 창을 확인하는 과정이 필요합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.