官术网_书友最值得收藏!

  • Learning Rust
  • Paul Johnson Vesa Kaihlavirta
  • 145字
  • 2021-07-02 23:07:26

Let's consider the heap

As already discussed, the heap is typically used for complex types. The stack frame model can still be used, but it will need modifying, as the stack will need to point to the base address of the complex type on the heap.

Let's construct a stack frame for the following piece of code:

    fn main() 
    { 
        let f = 42; 
        let my_ids: Vec<i64> = Vec::with_capacity(5); 
    } 

Space is allocated correctly for f, but my_ids is different; it is a Vector<i64> with pre-allocated space for five i64s values. While the vector itself is stored in the stack, its contents are allocated in the heap.

Values in the heap are considered to be more persistent than those in the stack. That means, unlike values in the stack, their lifetime does not have to be as short as the block's they were defined in.

主站蜘蛛池模板: 区。| 北海市| 新化县| 新蔡县| 卓资县| 阳东县| 通化县| 桐梓县| 冀州市| 上犹县| 长垣县| 五家渠市| 祁东县| 仁化县| 广元市| 河西区| 定日县| 常熟市| 垦利县| 宝丰县| 德清县| 广饶县| 建德市| 绥化市| 如皋市| 观塘区| 张家川| 常德市| 潍坊市| 汾阳市| 江达县| 灵石县| 达尔| 横山县| 南安市| 育儿| 甘洛县| 武宁县| 云南省| 五指山市| 文水县|