О курсе
Many features of C++ and its standard library make transparent use of dynamic memory — that is, the heap. On desktop systems, this is rarely an issue: the heap is always available and can be used freely. But in embedded development or game programming, things get trickier — dynamic memory may be heavily restricted, or even outright forbidden.
This raises a key question: which parts of C++ are safe to use, and which are not? The answer isn’t always obvious. For instance, some STL containers always rely on new, meaning they allocate from the heap. Even familiar constructs like std::string or virtual functions can secretly trigger dynamic allocations. As a result, developers often find themselves wondering: how much of the language must I “cut away” to write heap-free code?
This course is exactly about that — how to write modern, efficient C++ without using dynamic memory, while keeping all the benefits of the language intact.
Для кого этот курс
Начальные требования
Prerequisites for the course:
-
Basic knowledge of C++: understanding of syntax, functions, classes, structures, and pointers.
-
Experience with Object-Oriented Programming (OOP): inheritance, polymorphism, and virtual functions.
-
Familiarity with the Standard Template Library (STL): containers, strings, and algorithms.
-
Ability to work with compilers and build systems: knowledge of basic compiler flags, and the ability to run and debug programs.
-
A basic understanding of memory layout: stack, heap, and data segment.
These skills will help you quickly get into the material and focus on optimising code without using dynamic memory.
Наши преподаватели
Как проходит обучение
How the course is structured:
The course combines theory with hands-on practice. Each topic begins with an explanation of how C++ features work without relying on dynamic memory, followed by practical examples. First, you’ll see a classic solution that uses the heap, and then you’ll learn how to rewrite it using only static or stack-based memory.
Throughout the course, you will:
-
Practise replacing standard solutions with more efficient alternatives;
-
Rewrite code to work without
newanddelete; -
Use compile-time mechanisms to replace RTTI and
dynamic_cast; -
Apply modern C++20 features to write efficient and safe code.
Программа курса
Сертификат
Что вы получаете
- An understanding of which C++ features rely on dynamic memory — and how to work around them.
- Practical skills in writing code without using the heap, relying solely on the stack and static buffers.
- The ability to preserve polymorphism, interfaces, and OOP principles without virtual functions or RTTI.
- Experience in replacing standard STL containers with fixed-size data structures.
- Skills in manually optimising and analysing code to detect hidden dynamic memory usage.
- Preparation for developing game systems or embedded software where heap allocation is limited or entirely prohibited.