Windows* OS C/C++ Dynamic Memory Interface Replacement

Release version the proxy library is tbbmalloc_proxy.dll, debug version tbbmalloc_debug_proxy.dll.

The following dynamic memory functions are replaced:

  • Standard C library functions: malloc, calloc, realloc, free

  • Replaceable global C++ operators new and delete

  • Microsoft* C run-time library functions: _msize, _aligned_malloc, _aligned_realloc, _aligned_free, _aligned_msize


Prior to Intel® Threading Building Blocks (Intel® TBB) 2019, replaced global operator new might not call the std::new_handler.

To do the replacement use one of the following methods:

  • Add the following header to a source code of any binary which is loaded during application startup.

    #include "tbb/tbbmalloc_proxy.h"
  • Alternatively, add the following parameters to the linker options for the .exe or .dll file that is loaded during application startup.

    For 32-bit code (note the triple underscore):

    tbbmalloc_proxy.lib /INCLUDE:"___TBB_malloc_proxy"

    For 64-bit code (note the double underscore):

    tbbmalloc_proxy.lib /INCLUDE:"__TBB_malloc_proxy"

The OS program loader must be able to find the proxy library and the scalable memory allocator library at program load time. For that you may include the directory containing the libraries in the PATH environment variable.

For more complete information about compiler optimizations, see our Optimization Notice.