5) 문자열 복사
문자열 복사
문자열은 지금까지 해온 방법대로 복사하지 못한다.
string s = get_string("s: ");
string t = s;
문자열은 주소를 저장하기에 이대로 하면 둘 다 같은 주소를 가리키게 된다.
이 상태로 둘중 하나를 변경하면 나머지 하나도 같이 변하게 된다.
문자열을 복사하려면 새 메모리를 할당받고 문자열의 내용물을 복사받으면 된다.
메모리를 할당받을 땐 malloc()
함수를 사용한다.
char *s = get_string("s: ");
char *t = malloc(strlen(s) + 1);
for (int i = 0, n = strlen(s); i < n + 1; i++)
{
t[i] = s[i];
}
note
written by Caution-Sun