MISRA C:2023 Dir 4.12
Description
Rule Definition
Dynamic memory allocation shall not be used.
Rationale
Using dynamic memory allocation and deallocation routines provided by the Standard Library or third-party libraries can cause undefined behavior. For instance:
You use
free
to deallocate memory that you did not allocate withmalloc
,calloc
, orrealloc
.You use a pointer that points to a freed memory location.
You access allocated memory that has no value stored into it.
Dynamic memory allocation and deallocation routines from third-party libraries are likely to exhibit similar undefined behavior.
If you choose to use dynamic memory allocation and deallocation routines, ensure that your program behavior is predictable. For example, ensure that you safely handle allocation failure due to insufficient memory.
Troubleshooting
If you expect a rule violation but do not see it, refer to Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
Group: Code Design |
Category: Required |
AGC Category: Required |
Version History
Introduced in R2024a