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