`
lobin
  • 浏览: 425607 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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
0
0
分享到:
评论

相关推荐

    C++内存分配机制详解

    3. 自由存储区(Free Store):与堆类似,自由存储区由malloc等函数分配,使用free进行释放。这部分内存管理也需程序员自己控制,否则同样可能导致内存泄漏。 4. 全局/静态存储区(Global/Static Storage):全局...

    C++堆栈自由存储区全局静态存储区和常量存储区

    在C++编程语言中,根据变量的生命周期与作用域的不同,内存被划分为几个不同的区域进行管理,包括堆栈(Stack)、自由存储区(Free Store)、全局静态存储区(Global Static Storage)以及常量存储区(Constant ...

    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区

    **自由存储区 (Free Store)** - **特点**:类似于堆,通过`malloc`等函数分配内存,但使用`free`来释放内存。 - **生命周期**:程序员控制,与堆类似。 - **区别**:`malloc`/`free`系列更通用,适用于多种数据...

    C,C++内存分配的详细讲解包括堆,栈,数据段等.pdf

    5. 自由存储区(Free Store): 这是C++特有的概念,与堆类似,由`malloc`和`new`分配,`free`和`delete`释放。它提供了一种更灵活的内存管理方式,但需要程序员自己管理内存,避免内存泄漏。 在C++中,除了上述五...

    c++动态分配内存

    - **自由存储区(freestore)**:也称为动态存储区或堆(heap)区,用于通过`new`关键字动态分配的内存空间。 **7.1.2 静态定义的变量和对象用标识符命名,称为**: - **命名对象**:即通过标识符直接访问的对象或变量...

    C++内存管理.doc

    - 自由存储区(Free Store):与堆类似,使用`malloc`等函数分配的内存也在此区域,用`free`进行释放。 - 全局/静态存储区(Global/Static Storage):全局变量和静态变量存储在这里,程序开始时分配,结束时释放。...

    C++内存管理

    3. 自由存储区(Free Store):与堆类似,使用`malloc`等函数分配,用`free`释放。 4. 全局/静态存储区(Global/Static Storage):存储全局变量和静态变量,程序结束时自动释放。 5. 常量存储区(Constant ...

    C++JAVA内存分配.pdf

    4. **自由存储区(Free Store)**:这是对堆的另一种称呼,与堆的定义相同。 5. **常量存储区(Constant Storage Area)**:这里存放程序中的常量,比如字符串字面量。这些区域的内存不能被程序修改。 相比之下,...

    C++堆、栈及静态数据区详解

    本文将深入探讨C++中的堆、栈以及静态数据区,帮助理解这些内存区域的区别和使用场景。 1. 栈(Stack): 栈是编译器自动管理的内存区域,主要用来存放函数参数、局部变量等。每当进入一个函数调用,栈就会为函数的...

    C++内存管理pdf版

    首先,C++中的内存分配方式主要分为五个区域:堆、栈、自由存储区、全局/静态存储区和常量存储区。每个区域都有其独特的用途和特点: 1. 栈(Stack):栈是在执行函数时分配局部变量的地方,函数结束时局部变量的...

    C++内存管理技术内幕

    C++的内存分为五个区域:堆(Heap)、栈(Stack)、自由存储区(Free Store)、全局/静态存储区(Global/Static Storage)以及常量存储区(Constant Storage)。栈主要用来存放函数调用时的局部变量,其分配和释放...

    C/C++堆、栈及静态数据区详解

    3. **自由存储区(Free Store)**: 自由存储区与堆类似,主要通过`malloc`、`calloc`和`realloc`等函数进行分配和释放。这部分内存管理同样需要程序员手动操作,避免内存泄漏。 4. **全局/静态存储区(Global/...

    C/C++内存管理深入详解

    首先,让我们了解一下C++内存的五个主要区域:堆(Heap)、栈(Stack)、自由存储区(Free Store)、全局/静态存储区(Global/Static Storage)和常量存储区(Constant Storage)。 1. 栈内存:在函数调用时,为...

    C++内存管理.pdf

    3. **自由存储区(Free Store)**:类似于堆内存,由`malloc`等函数分配,使用`free`函数释放。这种内存管理方式与堆类似,但具体实现可能因操作系统而异。 4. **全局/静态存储区(Global/Static Storage)**:用于...

    C++中堆和栈的区别

    自由存储区(Free Store)与堆类似,通过`malloc`、`calloc`、`realloc`和`free`进行分配和释放内存。与堆的区别在于,自由存储区的内存管理更原始,没有`new`和`delete`的额外功能,比如对数组的支持。 全局/静态...

Global site tag (gtag.js) - Google Analytics