Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Aug 3, 2001



Building the Right Environment to Support AI, Machine Learning and Deep Learning

DLLs and Dynamic Memory Allocation

Dynamic linking -- either in the form of shared libraries in Unix or Windows DLLs -- is not defined by standard C++. However, this is a widely used feature among C++ programmers. One of the peculiarities of dynamic linking is memory management. Unlike an ordinary program that has a single heap, a DLL-based application may have several distinct heaps: one for the main program and one for each DLL. The virtual memory system maps the DLLs' address space into the main application's address space. However, you should remember to delete dynamically allocated objects in the same executable section that created them. Thus, an object that was allocated inside a DLL must be destroyed within that DLL. Trying to destroy it in the main application is likely to raise a runtime exception. The most reasonable solution is to define allocation and deallocation functions in the DLL that create and destroy the requested object within the DLL's address space.
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date