Memory Management in C++ Covers the design of a global memory manager that is as fast and space-efficient as per-class allocators.
To New, Perchance to Throw, Part 2 Delves deeper into the question of what operator new() failures mean, and how best to detect and handle them.
To New, Perchance to Throw, Part 1 Explains why a class that provides its own class-specific operator new(), or operator new[](), should also provide corresponding class-specific versions of plain new, in-place new, and nothrow new.
Containers in Memory: How Big Is Big? Answers the question of how much memory the various standard containers use to store the same number of objects of the same type T.
Counted Body Techniques Introduces two key concepts: the use of a generic requirements based approach to simplify and adapt the use of the counted body pattern and the ability to dynamically and non-intrusively add capabilities to fixed types using the runtime mixin pattern.
Using auto_ptr Effectively Explains why auto_ptr neatly solves common C++ design and coding problems, and why using it can lead to more robust code.
Effective C++ Memory Allocation Using several features of the language, this article presents a framework for resource allocation which is temporally deterministic, provides for callback, provides memory pools, and can provide for deadlock prevention.
C++ Tutorial - Dynamic Memory Allocation This tutorial covers dynamic memory allocation in C++ for both single objects and arrays of objects. A common beginner bug, dangling pointers, is also described.
C++ Memory Management: From Fear to Triumph, Part 1 This article discusses C++ in the context of several other popular languages. It also describes the kinds of memory errors that can occur in C++ programs.
Smart Pointers in Boost Introduces smart pointers and takes a look at Boosts various smart pointer templates (scoped_ptr, scoped_array, shared_ptr, and shared_array).
Smart Pointers in C++ Andrei Alexandrescu discusses smart pointers, from their simplest aspects to their most complex ones and from the most obvious errors in implementing them to the subtlest ones--some of which also happen to be the most gruesome.
C++ Memory and Resource Management Stephen Dewhurst discusses how the various features of C++ are used together in memory management, how they sometimes interact in surprising ways, and how to simplify their interactions.
The Rule of The Big Two Matthew and Bjorn update the well-known Rule of The Big Three, explaining which one of those member functions is not always needed.