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