summaryrefslogtreecommitdiff
path: root/Variables lives on the stack.md
diff options
context:
space:
mode:
Diffstat (limited to 'Variables lives on the stack.md')
-rw-r--r--Variables lives on the stack.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/Variables lives on the stack.md b/Variables lives on the stack.md
new file mode 100644
index 0000000..579a984
--- /dev/null
+++ b/Variables lives on the stack.md
@@ -0,0 +1,16 @@
+[[Rust]]
+[[To put data on the heap use a Box]]
+
+
+---
+Each function has a frame consisting of variables. Those frames live on the stack.
+
+A frame is **deallocated when the function returns**.
+
+If we assign a variable such as
+```rust
+let a = [0; 1_000_000];
+let b = a;
+```
+
+the value of a is **copied** to b (thus we get two huge arrays). This is **expensive**. Think about what happens when we call a function. \ No newline at end of file