Re: 61.2 질문입니다.
, 도장_ 관리자님이 작성문자열 리터럴은 읽기 전용이고, 프로그램이 종료될 때까지 유지됩니다.
따라서 블록 {과 } 사이에 있다고 해서 범위를 벗어났다고 사라지지 않습니다.
문자열 리터럴은 읽기 전용이고, 코드와 함께 직접 컴파일됩니다. 따라서 저장 공간도 분리되어 있습니다. 보통은 .rdata 영역에 저장합니다. rdata의 r은 read-only를 뜻합니다.
일반적인 데이터는 data 영역이고, 블록 안에서만 유효합니다. int로 선언한 정수 등은 블록 범위를 벗어나면 무효화됩니다.
정수도 범위를 벗어나서 유효한 상태를 유지하고 싶다면 malloc으로 메모리를 할당하면 됩니다. 이는 예제로 설명되어 있습니다.