Learn Memory Management in C

NeoVim Maintainer and Telescope.nvim Contributor

About this course
Learn to manually manage memory in C and build a garbage collector from scratch.
What you'll learn
C Basics
Introduction to the basics of the C programming language
Structs
Understand how C structs work and how they're laid out in memory
Pointers
You thought pointers were hard? Wrong. Let's figure them out together.
Enums
Lean how to use enums (enumerations) in C to create a set of named constants.
Unions
Unions in C are not the same as they are in TypeScript. Let's grok C unions.
Stack and Heap
Understand the difference between allocating memory on the stack and the heap
Advanced Pointers
Let's practice some more advanced pointer concepts - like pointers to pointers
Stack Data Structure
Build a stack in C using structs and pointers and understand where the memory is allocated
Objects
Implement your own object system for later use in your garbage collection algorithms
Refcounting GC
Implement a simple reference counting garbage collector from scratch in C
Mark and Sweep GC
Implement a basic mark and sweep garbage collector and understand its tradeoffs with refcounting