인프런 커뮤니티 질문&답변

k ch님의 프로필 이미지
k ch

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

10강 게임데이터 관리

16:29 uint8*을 FABCharacterStat*로 다시 형변환 하는이유

작성

·

337

·

수정됨

0

항상 친절한 답변 감사합니다.

 

왜 DataTable의 Value는 uint8*를 쓰게 됐을까가 궁금합니다.

 

TArray<uint8*> ValueArray;
		DataTable->GetRowMap().GenerateValueArray(ValueArray);

GenerateValueArray함수로 데이터 테이블의 모든 벨류를 복사 할때 uint8*형식으로 복사를 진행한후 다시 FABCharacterStat*으로 형변환 하는데요

 

템플릿으로 FABCharacterStat을 받으면 형변환하지 않고 편하게 사용할 수 있을거 같은데 말이죠..

 

 

GPT의 답변인데 이게 맞을까요?

DataTable의 각 셀에 저장되는 값은 FString이 아니라 uint8* (unsigned 8-bit integer pointer)로 저장될 때가 있습니다. 이는 다양한 데이터 형식을 다루기 위한 유연성을 제공합니다. uint8*는 메모리의 원시 데이터를 가리키는 포인터로, 이를 사용하여 다양한 데이터 형식을 저장할 수 있습니다.

 

예를 들어, DataTable에서는 문자열, 숫자, 구조체 등 다양한 데이터를 저장할 수 있습니다. uint8*는 이러한 데이터 형식을 표현하는 데 사용됩니다. 그리고 데이터를 사용할 때는 필요에 따라 해당 데이터 형식으로 변환하여 사용할 수 있습니다.

따라서 DataTable이 uint8*를 사용하는 이유는 데이터의 다양성과 유연성을 제공하기 위함이며, 이를 통해 사용자가 필요에 따라 다양한 데이터 형식을 DataTable에 저장하고 활용할 수 있습니다.

 

 

 

 

답변 1

0

이득우님의 프로필 이미지
이득우
지식공유자

uint8은 BYTE인데, 가장 무난하게 사용할 수 있는 데이터 배열(스트림)의 타입입니다. 아무래도 범용적으로 사용해야하다보니, BYTE 배열로 우선 선언하고 필요할 때마다 형변환시키도록 설계한 것 같습니다. 형변환이 부하가 걸리는 것은 아니니.

k ch님의 프로필 이미지
k ch
질문자

가장 무난하게 범용적으로 사용할수있는 타입이라서 그렇군요.. 감사합니다!!!

k ch님의 프로필 이미지
k ch

작성한 질문수

질문하기