Inflearn Community Q&A
동적할당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
Instructor
C++ new를 할 때 메모리를 어떻게 관리할지
약속되어 있는 것은 아니고 구현에 따라 다릅니다.
그러나 대부분 이렇게 메모리 헤더를 두고
현재 사용중인 메모리 크기 및 다음 메모리 주소를 넣어서 관리하는 경우가 많습니다.
(그렇지 않으면 delete를 했을 때, 회수할 메모리의 크기를 알기 힘들기 때문)
실제로 나중에 나올 서버 시간에도 메모리 풀의 개념이 나오는데
이렇게 헤더를 사용하게 됩니다.
0




