8월 08, 2016

char * 타입으로 가르키는 string

char * str = "Hello!"
소스 코드 상에 위와 같이 표현된 string은 string의 내용(character)을 바꿀 수 없음.

위와 같이 표현된 string은 complile time 때 이에 대해 미리 알고 있어야하기 때문에, string이 executable 안에 직접 쓰여짐. Executable 안에 기록된 data는 읽기 전용이기 때문에 수정/변경될 수가 없으며, 수정하고 싶은 data는 executable이 아닌 stack memory나 heap memory에 기록해야 함. 따라서 char str[] = "string" 과 같이 local varialble로 char array를 선언해서 여기에 string을 기록하거나, malloc으로 heap memory 에 공간을 할당하고 여기에 string을 복사해서 사용해야 함.



Reference

댓글 없음:

댓글 쓰기