MISRA C++:2023 Rule 21.6.2
Description
Rule Definition
Dynamic memory shall be managed automatically
Rationale
Dynamic memory requires management to avoid errors such as memory leaks, double frees,
dangling pointers, and nonmatching allocation and deallocation functions. Attempting to
manage dynamic memory without facilities such as std::make_unique
or
std::vector
can be error prone. Do not use C-style memory allocation
functions because they have limitations such as not being type safe and not using
constructors or destructors.
Polyspace Implementation
Polyspace® reports a violation for any of these nonautomatic uses of dynamic memory management:
The functions
malloc
,calloc
,realloc
,alligned_alloc
, andfree
Nonplacement forms of
new
ordelete
Member functions named
allocate
ordeallocate
that are enclosed by namespacestd
Uses of
std::unique_ptr::release
Troubleshooting
If you expect a rule violation but Polyspace does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
Group: Language support library |
Category: Required |
Version History
Introduced in R2024b