In-Depth C: Foundations to Object-Oriented Programming in C
An interactive lab for embedded engineers. Start with types, promotion, pointers, and lifetime — then build up to custom types, memory layout, and OOP design patterns. Visualize memory, simulate bugs, explore design patterns — all in the browser, no setup required.
Progress dashboard
Learning roadmap
Part 1 — Core C
C foundations
Types & sizes, integer promotion, operators, control flow, functions, arrays & strings.
Pointers, arrays & strings
& and *, pointer arithmetic, array decay, const pointers, pointers to pointers.
Memory & lifetime
Stack vs heap vs static, malloc/free ownership, the five lifetime bugs, static pools.
Part 2 — Custom types, memory & OOP in C
Why custom types?
Data grouping, state tracking, types as a correctness tool, values vs representation.
Custom types deep-dive
typedef, enum, struct, union — and the tagged-union pattern.
Struct memory lab
Alignment, padding, packed structs, and six memory bugs.
OOP in C
Objects, methods, self, encapsulation, and opaque handles.
Polymorphism
Function pointers, ops tables, callbacks, and composition.
Pitfalls
20 interactive warnings: the things C will not protect you from.
Preprocessor, modules & build
Headers, macros, conditional compilation, const/volatile/static, bit manipulation, the build pipeline.
Design playground
Assemble your own design and study the generated C listing.
Final quiz
26 shuffled questions across every module.