zoukankan      html  css  js  c++  java
  • stack(栈) and heap(堆)

    Heap is a large pool of memory used for dynamic allocation. When using new operator, to allocate the memory, the memory is assigned from heap. When a dynamically allocated variable is deleted, the memory is “returned” to the heap and can then be reassigned as future allocation requests are received.

    The heap has advantages and disadvantages:
    1) Allocated memory stays allocated until it is specifically deallocated (beware memory leaks).
    2) Dynamically allocated memory must be accessed through a pointer.
    3) Because the heap is a big pool of memory, large arrays, structures, or classes should be allocated here.

    As a structure, stack has a last-in, first-out (LIFO) property. The call stack is a fixed-size chunk of sequential memory addresses. The stack pointer keeps track of where the top of the stack currently is. Parameters, local variables, and function calls are pushed on stack.

    The stack has advantages and disadvantages:

    1) Memory allocated on the stack stays in scope as long as it is on the stack. It is destroyed when it is popped off the stack.
    2) All memory allocated on the stack is known at compile time. Consequently, this memory can be accessed directly through a variable.
    3) Because the stack is relatively small, it is generally not a good idea to do anything that eats up lots of stack space. This includes allocating large arrays, structures, and classes, as well as heavy recursion.

    reference: http://www.learncpp.com/cpp-tutorial/79-the-stack-and-the-heap/

  • 相关阅读:
    NEO发行资产Token
    OSCP考试回顾
    Windows降权
    Mimikatz.ps1本地执行
    MS16-032提权正确方法
    一种通过HTTP传文件出网的姿势
    mac chromedriver error
    关于websocket 在生产环境中遇到的问题 及 解决办法
    how to install protobuff python
    Git 使用疑问
  • 原文地址:https://www.cnblogs.com/xispace/p/3393386.html
Copyright © 2011-2022 走看看