기록용

UE5) 복사와 참조, 포인터

UniCoti(유니코티) 2025. 7. 28.

내가 코딩에 제대로 된 입문을 C#으로 했기도 하고 독학으로 배운 기간도 꽤 길기 때문에

포인터에 대해서 막연히만 알고 있었는데 언리얼의 C++에서 또한 포인터가 필요하기에

이번에 정식으로 강의에서 처음 교육을 받게 되었다.

 

두 변수를 스왑하는 문제에 대해서 설명을 했는데, 인수 A와 B의 '값'을 스왑하는 함수를

제작해서 바꿨지만 함수를 호출한 쪽의 변수 A,B는 서로 바뀌지 않았다는 문제였다.

 

처음에는 왜 안바뀌지 싶었는데, 당연히 변수 자체가 바뀐 게 아닌 함수에서 임시로

설정된 두 값 A,B가 바뀌었을 뿐 변수 자체가 바뀐게 아닌걸 금세 파악할 수 있었고,

인수 A B에 변수 A B가 들어간 게 아닌 값을 잠시 복사해준 격이라는 설명이 있었다.

 

이걸 방지하기 위해서 변수 자체가 들어갈 수 있게 하면 좋은데... 라는 고민이

포인터의 시작이다. 포인터는 원래도 알고 있었다. 그 변수가 메모리에서 할당 된

주소의 개념을 직접 전달해주는 것. UE5에도 포인터 타입이 지정이 가능한 걸

알게 되었고, 실제 포인터가 어디서 쓰이는지를 알 수 있었다.

 

포인터가 악명이 되게 높은데, 아무래도 C#이지만 다른 언어를 꽤 많이 연습했다보니

왜 그런지, 언제 써야하는지 그렇게 답답하진 않은 것 같다. 


이상으로 도움이 되었길 바라며,

 

끝.

댓글