인프런 커뮤니티 질문&답변

baro5362님의 프로필 이미지
baro5362

작성한 질문수

홍정모의 따라하며 배우는 C언어

11.2 포인터의 읽기 전용메모리에 대해서 질문이 있습니다.

작성

·

229

0

강의에서 포인터는 읽기전용 메모리에 저장되기 때문에 값을 바꾸려고하면 운영체제에서 막는다고 하신건 이해가 잘 갑니다.

char* word = "Goggle";

word[2] = 'o'; 는 런타임 에러가 나는데

int n = 5;

int* pt = &n;

*pt = 8; 는 똑같은 포인터에 저장된 값을 바꾸는 건데 왜 문제가 없는건가요?

같은 이유로 왜

*word[2] = 'o';  처럼 dereferencing을 했을때도 에러가 나는 이유는 무엇인가요?

감사합니다.

답변 1

1

안녕하세요?
포인터가 아닌 "Goggle" 이 text segment에 저장되는 것 입니다. 때문에 "Goggle" 이라는 string을 바꿀 수 없는 것 입니다.

baro5362님의 프로필 이미지
baro5362

작성한 질문수

질문하기