인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

Better Turtle님의 프로필 이미지
Better Turtle

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

StompAllocator의 VirtualFree를 위한 Alloc 시작 주소 계산

작성

·

165

0

페이지들을 region 단위로, 64k 정렬로 시작 주소를 할당해주는 것이 VirtualAlloc()으로
MSDN을 읽었습니다.

다만 이 함수에서 페이지 2개 짜리를 해제할 시, 시작주소가 안맞는 것 아닌가 싶어서요.

GRANULARITY = 0x10000 = 65536;
baseAddress = address - (address % GRANULARITY);

를 해야만, 그래뉼리티 기반으로 할당된 시작지번이 정확히 나오는게 아닌건가...용?

답변 1

1

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

무조건 앞에다 붙이는 버전에선 % PAGE_SIZE로 괜찮았지만,
뒤에다 붙이는 버전이라면 말씀대로 GRANULARITY를 이용하거나
언리얼 엔진처럼 헤더값을 넣어서 첫 페이지 위치를 기입하는 방향이 맞겠습니다.
그런데 현재 강의 구조에선 페이지가 다수라도
데이터 시작은 앞페이지에 위치해서, 별다른 문제는 없어 보입니다.

 

Better Turtle님의 프로필 이미지
Better Turtle

작성한 질문수

질문하기