스트링 메모리 할당에 대해...
글쓴이: thisnome / 작성시간: 화, 2005/08/23 - 8:39오후
int main() { char *pStr; pStr = "abcd"; return 0; }
위에서처럼 포인터 pStr 에 "abcd" 문자열을 위한 공간을 할당해서 쓰는 일은 흔하지 않기에... 개발할때 사용하려 하니 몇가지 의문이 생겨 질문 올립니다.
1. 위에서 처럼 문자열을 할당받아 사용하는것을 뭐라고 부릅니까? 수많은 글타래중에 관련 내용이 있을텐데.. 어떤 키워드로 찾아야 할지 모르겠네요..
2. 내부적으로 메모리 할당을 받는 것이라면.. 할당받는 시점이 어느시점인지.. (명령이 실행되는 라인, 혹은 해당 함수의 시작..)
3. 할당받은 메모리 부분을 해제하는 작업은 어느 시점에서 일어나는지.. (함수의 끝..? 혹은 해당 스코프의 끝?)
3번 질문에 대한 예제를 아래에 올리겠습니다. 답변 부탁드립니다.
int main() { char *ptr = NULL; { ptr = "11112222"; } return 0; }
위에서 ptr 에 할당된 스트링 "11112222" 가 언제까지 유효한지요..
Forums:
위의 예제라면, "abcd", "111222333" 의 메모리 할당은
위의 예제라면, "abcd", "111222333" 의 메모리 할당은
처음부터 일어나지 않습니다. 왜냐하면 이런식으로 명시해둔것들은
컴파일시에 Data 영역에 들어가게 되어서, 처음부터 자신의 공간이 있습니다. 즉, 프로그램 종료시에나 사라집니다. 고운 하루되세요.
=========================
CharSyam ^^ --- 고운 하루
=========================
ㅋㅋ 감사합니다.
ㅋㅋ 감사합니다.
댓글 달기