ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 포인터에 문자열을 초기화, 변경하기
    프로그래밍/C 2020. 12. 31. 15:39

    문자열 상수는 프로그램이 사용하는 메모리 영역중에서 텍스트 세그먼트라고 불리는 특수한 메모리 영역에 저장된다. 

     

    char *p="Helloworld";

     

    먼저 포인터 변수가 생성된다. 모든 변수는 데이터 세그먼트 라고 불히는 영역에 저장된다. 

     

    따라서 다음과 같이 포인터 변수를 통해 문자열 상수를 변경하려하면 운영 체제에 오류가 발생한다.

     

    char *p = "Helloworld";

    strcpy(p, "Goodbye");

     

    하지만 다음과 같은 문장은 가능하다.

     

    char *p = "Helloworld";

    p = "Goodbye";

     

    포인터 변수 p는 데이터 세그먼트에 있으므로 우리가 값을 변경할 수 있다. 따라서 다른 문자의 상수의 주소를 p에

     

    저장할 수 있는 것이다.

     

    출처- 책<쉽게 배우는 C언어 EXPRESS>

Designed by Tistory.