전역 변수로 아래와 같이 선언되어 있다.
char aString[] = "now is the time"; /* an array */
char *pString = "now is the time"; /* a pointer */
위 두 변수의 차이점은?
* aString
각각의 문자를 바꿀 수 있지만, 항상 일정한 장소에 저장
* pString
가리키는 위치를 바꿀 수 있지만 내용을 바꾸는 것은 정의되어 있지 않다.
(바꿀 수 없다는 말은 아니다)
그런데, pString이 가리키는 문자열들은 어디 저장되는 것일까? 그리고 왜 바꿀 수 없는 것일까?
실제로 Visual C++로 "strcpy(pString, aString)"을 하면
"0xC0000005: 0x00487894 위치를 기록하는 동안 액세스 위반이 발생했습니다."
라는 에러가 발생한다.
char aString[] = "now is the time"; /* an array */
char *pString = "now is the time"; /* a pointer */
위 두 변수의 차이점은?
* aString
각각의 문자를 바꿀 수 있지만, 항상 일정한 장소에 저장
* pString
가리키는 위치를 바꿀 수 있지만 내용을 바꾸는 것은 정의되어 있지 않다.
(바꿀 수 없다는 말은 아니다)
그런데, pString이 가리키는 문자열들은 어디 저장되는 것일까? 그리고 왜 바꿀 수 없는 것일까?
실제로 Visual C++로 "strcpy(pString, aString)"을 하면
"0xC0000005: 0x00487894 위치를 기록하는 동안 액세스 위반이 발생했습니다."
라는 에러가 발생한다.