- 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.
推薦閱讀
- 國際大學生程序設計競賽中山大學內部選拔真題解(二)
- 數據結構和算法基礎(Java語言實現)
- Python爬蟲開發:從入門到實戰(微課版)
- Learning RxJava
- Visual C++實例精通
- C語言程序設計(第2版)
- Web Development with Django Cookbook
- Java編程指南:基礎知識、類庫應用及案例設計
- Python Tools for Visual Studio
- 數據結構簡明教程(第2版)微課版
- 精通API架構:設計、運維與演進
- Learning Laravel 4 Application Development
- Python Data Analysis(Second Edition)
- Unity 2018 Augmented Reality Projects
- Oracle數據庫編程經典300例