C++ 포인터란? 주소와 역참조부터 동적 메모리 할당까지
프로그램에서 사용하는 변수와 객체는 메모리의 특정 위치에 저장됩니다. 일반 변수에는 정수나 문자와 같은 값이 저장되지만, 포인터(Pointer)에는 다른 데이터가 위치한 메모리 주소를 저장할 수 있습니다. int number = 10; int* pointer = &number; 위 코드에서…
Series Archive
게임 개발 및 프로그래밍에 관련된 주제에 대한 카테고리 입니다.
프로그램에서 사용하는 변수와 객체는 메모리의 특정 위치에 저장됩니다. 일반 변수에는 정수나 문자와 같은 값이 저장되지만, 포인터(Pointer)에는 다른 데이터가 위치한 메모리 주소를 저장할 수 있습니다. int number = 10; int* pointer = &number; 위 코드에서…
C++에서는 변수를 선언할 때 일반적으로 변수의 타입을 직접 작성합니다. int number = 10; double speed = 5.5; const char* npcName = "Toto"; 하지만 변수의 초기화 값만 보아도 타입을 명확하게 알 수 있는 경우가 있습니다.…
C++ 코드를 작성하다 보면 같은 타입을 여러 곳에서 반복해서 사용하거나, 함수 포인터처럼 선언이 복잡한 타입을 다뤄야 할 때가 있습니다. 예를 들어 다음과 같은 함수 포인터 선언은 한눈에 의미를 파악하기 쉽지 않습니다. int (*function)(char, double);…
함수를 호출하면 프로그램은 함수에 전달할 인자를 준비하고, 함수의 코드를 실행한 뒤 다시 호출한 위치로 돌아옵니다. 이러한 함수 호출에는 일정한 비용이 발생합니다. 함수의 크기가 매우 작고 자주 호출된다면 함수 호출에 필요한 작업이 함수 본문을 실행하는…
C++ 소스 파일에 코드를 작성했다고 해서 컴퓨터가 그 내용을 바로 실행할 수 있는 것은 아닙니다. 우리가 작성한 C++ 코드는 빌드 과정을 거쳐 기계어로 변환되고, 다른 소스 파일 및 라이브러리와 결합된 뒤 하나의 실행 파일이…
C++ 학습을 시작하려면 먼저 소스 코드를 작성하고 실행할 수 있는 개발 환경이 필요합니다. 이번 글에서는 Visual Studio 프로젝트의 기본 경로를 설정하고, 콘솔에 문자열을 출력하는 첫 번째 C++ 프로그램을 작성해 보겠습니다. 그리고 예제에 사용한 #include,…
제가 인프런에서 진행하고 있는 ‘C++로 만드는 게임 엔진 프레임워크’ 강의에 새로운 심화 파트를 추가했습니다. 이번 업데이트에서는 기존 강의에서 완성한 게임 엔진과 게임 프로젝트를 그대로 이어서 사용하면서, Actor 중심 구조를 Component 기반 구조와 Transform Scene…
Scene Graph의 부모-자식 관계 연결하기 지난 글에서는 Scene Graph를 구성하는 가장 작은 단위인 SceneNode 클래스를 만들었습니다. 하지만 아직은 단순히 이름만 가진 객체일 뿐이었습니다. 각 노드는 서로 아무런 관계도 맺고 있지 않았습니다. 이번 글에서는 Scene…
SceneNode란 무엇인가? 지난 글에서는 씬 그래프가 무엇인지 간단히 살펴봤습니다. 씬 그래프는 게임 오브젝트를 단순한 목록으로만 관리하지 않고, 부모-자식 계층 구조로 관리하는 방식입니다. World └─ Player ├─ Camera └─ Weapon 이번 글에서는 이 구조를 코드로…
씬 그래프란 무엇인가? 언리얼 엔진 6 로드맵에서 흥미로운 변화 중 하나는 Scene Graph입니다. 에픽은 언리얼 엔진 6에서 Verse 기반의 새로운 게임플레이 프레임워크를 Scene Graph라는 이름으로 소개하고 있습니다. 씬 그래프 자체는 완전히 새로운 개념은…