#include<stdio.h> #include<stdlib.h> #include<string.h> void main() { char* ptr1; char* ptr2 = "korea"; char* ptr3 = NULL; ptr3 = (char *)malloc(sizeof(char)*20); //strcpy(ptr1, "Good Korea"); //warning 초기화하지 않고 씀 //strcpy(ptr2, "Good Korea"); //warning 이미 korea가 할당되어 korea가 상수이므로 //korea를 수정할 수 없음 문자열 상수 strcpy(ptr3, "Good Korea"); printf("%s\n", ptr3); free(ptr3); }
ptr2 는 "korea"가 이미 할당되어 문자열 상수를 가르키는 포인터가 된다.
문자열 상수는 내용을 고칠 수 없으므로 사용할 수 없다.
하지만
ptr2 = "hi korea";
로 바꿀 수는 있다.