-
포인터에 문자열을 초기화, 변경하기프로그래밍/C 2020. 12. 31. 15:39
문자열 상수는 프로그램이 사용하는 메모리 영역중에서 텍스트 세그먼트라고 불리는 특수한 메모리 영역에 저장된다.
char *p="Helloworld";
먼저 포인터 변수가 생성된다. 모든 변수는 데이터 세그먼트 라고 불히는 영역에 저장된다.
따라서 다음과 같이 포인터 변수를 통해 문자열 상수를 변경하려하면 운영 체제에 오류가 발생한다.
char *p = "Helloworld";
strcpy(p, "Goodbye");
하지만 다음과 같은 문장은 가능하다.
char *p = "Helloworld";
p = "Goodbye";
포인터 변수 p는 데이터 세그먼트에 있으므로 우리가 값을 변경할 수 있다. 따라서 다른 문자의 상수의 주소를 p에
저장할 수 있는 것이다.
출처- 책<쉽게 배우는 C언어 EXPRESS>
'프로그래밍 > C' 카테고리의 다른 글
문자열의 초기화, 변경에서 왜 컴파일 오류가 발생할까? (0) 2020.12.31