강의

멘토링

커뮤니티

Inflearn Community Q&A

nomadlearner1472's profile image
nomadlearner1472

asked

[MMORPG Game Development with C++ and Unreal Series] Part 1: Introduction to C++ Programming

동적할당3에서 질문

Written on

·

167

0

동적할당 3에서 m2의 메모리 구조를 볼 때

연속적으로 12바이트가 잡혀 있고 조금만 더 위에 올라가보면 12바이트가 잡혀 있는 걸 알려줄 수 있게

메모리에  0000000c로 잡혀 있는 것을 보여주셨습니다.

여기서 그자리에 new가 할당해준 메모리 크기가 들어온 다는 건 어떻게 알 수 있는 건가요?

원래 메모리 할당해준거에서 12바이트 더 위로 올라가면 몇 바이트 메모리 할당해줬다고 표시하는 것으로

new라는 연산자는 약속이 되어 있는건가요?

0x00F4058C  0000000c  .... => 12바이트 위에 메모리가 몇바이트만큼 잡혔는지 표시

0x00F40590  00000051  Q...

0x00F40594  fdfdfdfd  ????

0x00F40598  000000c8  ?... ==> 여기가 메모리 시작점

0x00F4059C  00000002  ....

0x00F405A0  00000003  .... => 여기까지 연속적으로 잡혀있고

C++

Answer 2

1

Rookiss님의 프로필 이미지
Rookiss
Instructor

C++ new를 할 때 메모리를 어떻게 관리할지
약속되어 있는 것은 아니고 구현에 따라 다릅니다.

그러나 대부분 이렇게 메모리 헤더를 두고
현재 사용중인 메모리 크기 및 다음 메모리 주소를 넣어서 관리하는 경우가 많습니다.
(그렇지 않으면 delete를 했을 때, 회수할 메모리의 크기를 알기 힘들기 때문)

실제로 나중에 나올 서버 시간에도 메모리 풀의 개념이 나오는데
이렇게 헤더를 사용하게 됩니다.

0

답변 감사합니다!

nomadlearner1472's profile image
nomadlearner1472

asked

Ask a question