str2 = strdup(str);


이렇게 하면 안에서 내부적으로 str 문자열 길이 + 1 크기를 갖는 메모리를 malloc()으로 동적 할당해서

strcpy()로 문자열을 복사해 준 뒤 그 포인터를 리턴해 주는 함수임.


꽤 편한 함수임. 물론 malloc()으로 동적 할당한 메모리니깐 메모리 누수(memory leak)를 막기 위해서는

str2를 쓸 일이 더 이상 없어지면 free(str2);로 반드시 해제해 주어야 한다.