신입 게임 개발자의 프로그래밍 일기
[C++ 입문자에서 벗어나기]Chapter_4: 메모리(Memory)#4 - 1 여러분도 아시다시피 new는 재정의할 수 있습니다.하지만 이 new를 재정의할 때도 따르는 관례들이 있다는 것을 알고 계셨나요?이번 포스팅에서는 이 관례들에 대해서 이야기해보려고 합니다. [new와 delete를 재정의할 때 따르는 관례들] 먼저 new를 재정의(Overloading)해봅시다! std::bad_alloc을 던지는 new를 전역 범위와 클래스 전용 두가지로 오버로딩 해보았습니다.실행시켜보면 정상적으로 문장 두개가 출력되는 것을 확인할 수 있습니다.그런데 위 코드는 C++ 표준에서 권고하는 관례(가이드라인)에 적합한 new가 아닙니다. 1. 크기가 없는, 즉 0바이트 메모리 요청에 대한 대비를 할 것2. 가용 메..
[C++ 입문자에서 벗어나기]Chapter_4: 메모리(Memory)#3 void* operator new(std::size_t count) throw(bad_alloc); void* operator new(std::size_t count, const std::nothrow_t&) throw(); void* operator new(std::size_t count, void* ptr) throw(); 이전 포스팅에서 'std::bad_alloc을 던지는 첫번째 new'에 대해 알아봤으니 이번 포스팅에서는 '예외를 던지지 않는 new'와 'placement new(위치 지정 new)'에 대해 알아보겠습니다. [예외를 던지지 않는 new] std::bad_alloc 예외를 던지는 new와 예외를 던지지 않는 ..
[C++ 입문자에서 벗어나기]Chapter_4: 메모리(Memory)#2 2018년에 작성하는 첫 포스팅입니다.이번 포스팅에서는 new와 관련된 활용에 대해 이야기해보겠습니다.먼저 new의 Syntax를 살펴봅시다! void* operator new(std::size_t count) throw(bad_alloc); void* operator new(std::size_t count, const std::nothrow_t&) throw(); void* operator new(std::size_t count, void* ptr) throw(); 맨 처음 new는 일반적으로 가장 많이 사용하는 new의 형태입니다.두번째 new는 책(C++기초 플러스 5판, Effective C++ 3판)에서위치 지정 new라고..
우선 인사 먼저 드리고 시작하겠습니다. 2018년 무술년, 새해 복 많이 받으십시오! 신년 인사 게시글이라고 보기에는 좀 늦은 감이 있지만...이 블로그의 목표 중 하나가 개인적인 만족감, 즉 개인의 잡담을 할 수 있는 공간으로도 쓸 수 도 있기도 해서 과거 기록으로 남겨두려고 합니다.아마 2017년은 저에게 평생동안 잊지 못할 해가 될 것 같습니다.그것은 지금 이 글을 작성하는 공간과도 관련이 있는 일인데바로 군 입대를 했기 때문입니다.2017년에는 달력이 두 번 바뀌어야 전역이라는 소리를 입에 달고 살았지만 이제 달력이 한 번만바뀌어도 된다는 생각에 눈물이 날 거 같습니다.(아직도 ㅠㅠ)개인적으로 전역의 해인 2019년이 빨리 오기를 기원합니다.그렇지만 아무 성과없이 2019년을 맞이 할 수 는 없는..
[C++ 입문자에서 벗어나기]Chapter_4: 메모리(Memory)#1 C++을 배우면서 메모리에 대해 이야기하지 않을 수 없겠죠? 이번 포스팅에서 이야기의 주제는 아래 3가지입니다. -물리적 메모리(Physical Memory)와 가상 메모리(Virtual Memory) -기본적인 메모리 관리 함수: malloc과 free -클래스를 위한 메모리 관리 함수: new와 delete [물리적 메모리(Physical Memory)와 가상 메모리(Virtual Memory)) 우리는 물리적 메모리가 뭔지를 알고 있습니다. 컴퓨터 구입 및 조립 시, 포함되는 RAM이라는 메모리가 그것입니다. 그런데 왜 지금 이 포스팅에서는 메모리를 물리적 메모리라는 다른 용어로 표현하고 있는 걸까요? 그 이유는 프로그래밍에서..
ISO CPP의 게시글 중 하나인데 이번에 C++ 입문자에서 벗어나기의 가상메모리 파트를 작성을 위해 공부 중에 알게 된 사이트이다.한번쯤 생각해 볼 만한 질문들이 적혀있고 그에 대한 답들이 나와있다. 링크: ISO CPP Section: Memory Management
아래의 기술들은 C++ 입문자에서 벗어나기에서 메모리(Memory) 포스팅을 준비하여 조사한 기술들입니다.이 포스팅에서 자세하게까지는 설명하지 않고 이러한 기술들이 있다는 정도의 간단한 설명 정도만 적어놓았습니다.잘못된 정보가 있다면 언제든 지적해주시면 감사하겠습니다. 오버레이(Overlay)(목표)-물리 메모리보다 큰 프로세스를 동작시키기 위해 사용하는 기술(기술 개요)-전체 프로그램을 몇 개의 모듈들로 나누어 컴파일하고 수행시점에 필요한 모듈만을 메모리로 적재하여 사용한다.(부연 설명)-오버레이 기술은 운영체제로부터 어떤 특별한 지원을 받지 않습니다. 운영체제의 도움이 없기 때문에 프로그래머는 오버레이 기술을 적용할 프로그램의 모든 구조를 완전히 이해하고 있어야만 하는데 그 이유는 프로세스가 실행되는..
아래의 게시글은 Virtual Memory에서 Swapping과 Pagging에 대해 찾다가 알게된 읽을거리입니다. Windows 10/8에서 Hiberfil.sys와 Pagefile.sys 그리고 Swapfile.sys의 사용 용도http://www.thewindowsclub.com/hiberfil-pagefile-swapfile-sys-windows Help Desk Geek에서 위 파일들에 대한 설명글https://helpdeskgeek.com/windows-8/hdg-explains-swapfile-sys-hiberfil-sys-and-pagefile-sys-in-windows-8/