Intermediate C++ Game Programming Tutorial 5
In this video we learn about dynamic memory allocation / heap allocation / free store allocation / whatever the fuck you wanna call it. What is this shit you ask? Watch the goddamn video! I gotta pack.
- The three storage classes: automatic, static, and dynamic
- Allocating and freeing memory for objects/variables with
- Allocating and freeing memory for arrays with
Although not mentioned explicitly in the video, it is important to note that with an 'array' that is allocated dynamically via something like
pArray = new char;, the symbol
pArray is not an array in the C/C++ sense of the word. It is merely a pointer that points to a block of memory that we are treating as an array. So don't expect
sizeof( pArray ) to give you the size of the memory block in bytes, and don't expect range-based for loops to work with this 'array' (or
std::end for that matter).
Video Timestamp Index
Heap / Virtual Memory Red Pill
Chili has once again graced us with a most magnificent bomb of the knowledge variety. This Red Pill installment discusses virtual memory, memory paging and page allocation, virtual address translation, heap allocation and management, and other crazy bullshit. There is a theoretical discussion and there are practical demonstrations/experiments with code. Fun for the whole family!
Red Pill (Virtual Memory / Memory Paging / Heap Allocation)
GitHub Repo for tutorial
GitHub Repo for homework (Memesweeper)
Modify Memesweeper so that the array for the field is dynamically allocated depending on play field selection by the user at the beginning of the game. After a game over, the game should be able to return to the menu so that the user can play again without restarting the application.
A menu system and UI has already been implemented for you, all you need to do is figure out how to handle the output from the menu, and then modify the game engine to use dynamic allocation and to reset the field after every game.
Homework solution is here