inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

동적할당3에서 질문

175

움직이는YM

작성한 질문수 86

0

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

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

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

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

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

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

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

0x00F40590  00000051  Q...

0x00F40594  fdfdfdfd  ????

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

0x00F4059C  00000002  ....

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

C++

답변 2

1

Rookiss

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

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

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

0

움직이는YM

답변 감사합니다!

visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.

0

541

1

정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?

0

442

1

strcpy() 구현 관련 질문

0

513

1

빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?

0

453

1

클래스 타입의 포인터 질문합니다

0

546

1

입력값을 enum 값에 넣어주는거 이제 막혔나요?

0

498

1

템플릿 특수화 관련 질문

0

385

1

포인터 관련 질문합니다!

0

265

1

Unable to start assembler. Check your settings.

0

831

2

cpu선택

0

539

1

포인터 질문이 있습니다

0

324

1

20:35 에서 구조체 크기에 대한 질문입니다!

0

585

1

iterator 삭제관련

0

406

1

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

0

310

1

15 분 45초 대 질문

0

309

0

스택 프레임 질문합니다!

2

306

1

오른값 참조 in 게임

0

384

0

동적할당 질문이 있습니다

0

450

1

안녕하세요 메모리에 대해 질문드립니다.

0

305

1

함수객체 의 매개변수

0

360

1

복사생성자

0

434

1

main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요

0

421

1

포인터 실습 강의를 보고 궁금한게 있습니다.

0

355

1

스택 오버플로우

2

790

1