User Guide

  • 2021.2
  • 03/26/2021
  • Public Content
Contents

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).
Problem type: Memory not deallocated
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 leak
    problems 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 severity icon 
				(
    Error
    ).
  • Memory not deallocated
    problems 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 severity icon 
				(
    Warning
    ).
  • Memory growth
    problems occur when a block of memory is allocated, but not deallocated, within a specific time segment during application execution. Severity level = Warning severity icon 
				(
    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

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.