diff options
Diffstat (limited to 'meap/meap-code/ch6/ch6-heap-vs-stack/src/main.rs')
-rwxr-xr-x | meap/meap-code/ch6/ch6-heap-vs-stack/src/main.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/meap/meap-code/ch6/ch6-heap-vs-stack/src/main.rs b/meap/meap-code/ch6/ch6-heap-vs-stack/src/main.rs new file mode 100755 index 0000000..3bf14c6 --- /dev/null +++ b/meap/meap-code/ch6/ch6-heap-vs-stack/src/main.rs @@ -0,0 +1,16 @@ +use std::mem::drop; // <1> Bring manual `drop()` into local scope + +fn main() { + let a = Box::new(1); + let b = Box::new(1); + let c = Box::new(1); + + let result1 = *a + *b + *c; // <2> Use the variables so that they're not optimized away by the compiler. The unary `pass:[*]` operator is called the dereference operator. It returns the value within the box. + + drop(a); // <3> The memory holding `a` is now available + + let d = Box::new(1); + let result2 = *b + *c + *d; + + println!("{} {}", result1, result2); +} |