Memory Not Deallocated
Occurs when a block of memory is allocated, never deallocated, but still reachable at application exit (there is a pointer available to deallocate the block).

ID |
Code Location | Description |
---|---|---|
1 | Allocation site | Represents the location and associated call stack from which the memory block was allocated. |
Intel Inspector
distinguishes among
Memory leak
,
Memory not deallocated
, and
Memory growth
problem types in the following manner:
- Memory leakproblems occur when a block of memory is allocated, never deallocated, and not reachable (there is no pointer available to deallocate the block). Severity level =
(
Error). - Memory not deallocatedproblems occur when a block of memory is allocated, never deallocated, but still reachable at application exit (there is a pointer available to deallocate the block). Severity level =
(
Warning). - Memory growthproblems occur when a block of memory is allocated, but not deallocated, within a specific time segment during application execution. Severity level =
(
Warning).
C Example
static char *pStr = malloc(512); return;
Fortran Example
integer, allocatable, save, dimension(:) :: notdeallocatedptr(:) allocate(notdeallocatedptr(200))
Possible Correction Strategies
Use the appropriate deallocation function to return the memory block to the heap after its last use.
Platform
| Memory Allocator
| Memory Deallocator
|
---|---|---|
C++ language
| new operator
| delete operator
|
new[] operator
| delete[] operator
| |
C language
| malloc() ,
calloc() , or
realloc() functions
| free() function
|
Fortran language
| allocate() function
| deallocate() function
|