Motivation When programming in languages with pointers (e.g. C, C++), a lot of time is spent on problems related to memory management issues: memory smearing, memory leaks, memory waste and CPU time wasted on memory management. In order to decrease the amount of time we spend on this issue, we need to understand it better - how memory is allocated, how to distinguish memory smearing bugs from logical bugs, how to make our use of memory more efficient, etc. This lecture, based on part of the LUPG memory management tutorial, aims at providing knowledge that can be used to handle the above-mentioned problems.