2026/06 14

#define 0 NULL

NULL#define으로 0을 정의한 매크로포인터가 유효한 주소를 가리키지 않는 상태를 나타내기 위해 사용한다.NULL은 포인터가 아니라 정수 0으로 정의된 매크로이며, 컴파일 시 0으로 치환된다.NULL 사용 예시int* p = NULL;0은 C/C++에서 특별하게 null pointer constant로 취급되기 때문에 포인터에 대입할 수 있다.포인터는 내부적으로 주소값을 저장하지만, 일반 정수와 달리 해당 값을 메모리 주소로 해석하여 사용한다.따라서 NULL은 값 자체는 0이지만 의미적으로는유효한 메모리를 가리키지 않는 포인터를 나타낸다.NULL의 문제점void func(int x);void func(int* x);func(NULL);NULL은 정수 0으로 정의되어 있기 때문에func(int x);..

c++/기초 2026.06.02

GameInstance

# GameInstance 게임 프로그램이 실행되는 동안 유지되는 최상위 게임 객체 레벨이 변경되어도 사라지지 않으며 게임 전체 상태를 관리한다. --- # 생명 주기 ```text 게임 실행 | v GameInstance 생성 | v MainMenu 레벨 | v Lobby 레벨 | v Battle 레벨 | v 게임 종료 | v GameInstance 소멸 ``` GameInstance는 게임이 시작될 때 한 번 생성되고 게임이 종료될 때까지 유지된다. 레벨 전환(맵 이동)이 발생해도 파괴되지 않는다. --- # 사용 목적 레벨이 바뀌어도 유지되어야 하는 데이터를 저장할 때 사용한다. ## 전역 데이터 관리 - 플레이어 프로필 - 게임 설정 - 레벨 간 공유 데..

GameMode

#GameMode현재 레벨의 게임 규칙을 관리하는 객체플레이어가 어떻게 스폰되는지승리와 패배 조건이 무엇인지게임이 어떤 방식으로 진행되는지 등을 담당한다.생명 주기게임 시작 | vMainMenu 레벨 로드 | vMainMenu GameMode 생성 | vLobby 레벨 이동 | vMainMenu GameMode 소멸 | vLobby GameMode 생성 | vBattle 레벨 이동 | vLobby GameMode 소멸 | vBattle GameMode 생성 | v게임 종료GameMode는 레벨마다 새롭게 생성된다.레벨이 변경되면 기존 GameMode는 파괴되고새로운 GameMode가 생성된다.사용 목적현재 레벨의 게임 규칙을 관리한다.플레이어 관리플레이어 스폰 위치 결정기..

Delegate (델리게이트)

Delegate (델리게이트)함수(이벤트)를 저장하고 나중에 호출할 수 있는 객체함수 포인터를 더 안전하고 편리하게 사용할 수 있도록 만든 언리얼의 이벤트 시스템이다.왜 사용하는가?객체끼리 직접 의존하지 않고특정 이벤트가 발생했을 때 원하는 함수를 실행할 수 있다.예를 들어몬스터 사망 ↓경험치 지급 ↓UI 갱신 ↓퀘스트 진행도 증가몬스터가 직접 모든 시스템을 알 필요가 없다.델리게이트에 등록된 함수들을 호출하기만 하면 된다.기본 개념이벤트 발생 ↓Delegate 실행 ↓등록된 함수 호출일반 함수 호출Player->TakeDamage(10);특정 객체를 알아야 호출 가능Delegate 사용OnPlayerDamaged.Broadcast(10);누가 듣고 있는지 몰라도 됨등록..