C++ (动态)内存分配区域:自由存储区(Free Store)&堆区(Heap)

Heap:
The heap is the other dynamic memory area,
allocated/freed by malloc/free and their
variants.  Note that while the default global
new and delete might be implemented in terms of
malloc and free by a particular compiler, the
heap is not the same as free store and memory
allocated in one area cannot be safely
deallocated in the other. Memory allocated from
the heap can be used for objects of class type
by placement-new construction and explicit
destruction.  If so used, the notes about free
store object lifetime apply similarly here.


Free Store:
The free store is one of the two dynamic memory
areas, allocated/freed by new/delete.  Object
lifetime can be less than the time the storage
is allocated; that is, free store objects can
have memory allocated without being immediately
initialized, and can be destroyed without the
memory being immediately deallocated.  During
the period when the storage is allocated but
outside the object's lifetime, the storage may
be accessed and manipulated through a void* but
none of the proto-object's nonstatic members or
member functions may be accessed, have their
addresses taken, or be otherwise manipulated.


1、Memory Management - Part I, http://www.gotw.ca/gotw/009.htm
2、C++, Free-Store vs Heap,http://stackoverflow.com/questions/1350819/c-free-store-vs-heap

猜你喜欢

转载自lobin.iteye.com/blog/2328273