c언어 문자열 리터럴 : 값이 변경되면 안 된다.
오늘은 간단하게 문자열 리터럴만 올리도록 하겠습니다. "chogahui", "xi" 이런 것들을 우리는 리터럴이라고 합니다. 그러면, 이것들은 어디에 어떻게 저장이 되길래, 이들을 바꾸려고 하면 RTE가 뜰까요? 예제 프로그램 1을 봅시다. 4번째 줄에 보면 "chogahui" 라는 리터럴이 있습니다. 이것을 p가 가리키고 있어요. 그리고 p[0]에 'x'를 넣습니다. 6번째 줄에 p를 출력하는데요. "xhogahui"라는 내용이 출력될 거 같아요. 그런데, Seg fault가 뜹니다. 어떻게 된 걸까요? 이 상황을 다시 그려봅시다. p가 "chogahui"를 가리키고 있어요. 그러면 p[0]은 "chogahui"의 1번째 요소인 'c'일 겁니다. 이것을 'x'로 바꾸는 연산은, 메모리의 어느 영역에 '..
코딩/C
2019. 11. 14. 01:27
최근댓글