c++ 기초플러스 오탈자 발견할떄마다 메모장에 적어두고 좀 모이면 계속해서 제보하고있는데,


저번에 제보한것중에 아무리 봐도 아닌거같은데 거기서 답변으로 맞다길래 여쭤봅니다 형님들


const free_throws &clone(free_throws& ft)
{
free_throws * pt;
*pt = ft;
return *pt;
}


내가 제보한 책의 오탈자 내용인데, 493 페이지에 해당하는 내용임

책이 있으신 형님들은 보시면 알겠지만 이 소스 앞에 설명으로


new를 사용하는 두번째 방법은 new를 사용하여 새로운 기억공간을 만드는 것이다. new로 문자열 저장할 공간을 만들고,

함수가 그 공간을 지시하는 포인터를 리턴하는 예제는 앞에서 많이 살펴보았다. 참조를 사용하여 이와 비슷한 일을 처리하는 방법은 다음과 같다.


라는 설명후에 위 소스가 나오는데..


내가 이해하고 있는거는 pt가 포인터니까 주소를 저장해야할것임..근데 pt는 어느 주소하나 저장하는 것없음

*pt =ft

*연산으로 바로 ft의 값을 pt가 가르키고있는 곳에 복사하려고만하는데 이게 분명 잘못된거지 않나요?


실제로 


int main()

{

free_throws fit= {"YB",123,123,5.55};


free_throws fit2 = clone(fit);

return 0;

}


이런식으로 컴파일해보니 컴파일은 되는데 그 콘솔창에서바로 에러가나버림...분명 잘못된 코드는 맞는거같은데

내가 어딘가를 잘못이해하고 있다는거같은데..


코린이라 어디가 잘못된건지 모르겠는데 어디가 잘못된건가요?