need to read ownership stuff now.. stack heap inbound

This commit is contained in:
2026-06-16 16:14:10 +02:00
parent 82d4dd0235
commit 6baf967df0
4 changed files with 34 additions and 7 deletions
@@ -1,6 +1,6 @@
// TODO: Fix the compiler error in this function.
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
let vec = vec;
let mut vec = vec;
vec.push(88);
@@ -8,7 +8,9 @@ fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
}
fn main() {
// You can optionally experiment here.
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
println!("{:?}", vec1);
}
#[cfg(test)]
@@ -7,7 +7,9 @@ fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
}
fn main() {
// You can optionally experiment here.
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
println!("{:?}", vec1);
}
#[cfg(test)]
@@ -6,7 +6,9 @@ fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
}
fn main() {
// You can optionally experiment here.
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
println!("{:?}", vec1);
}
#[cfg(test)]
+24 -3
View File
@@ -1,4 +1,25 @@
fn main() {
// DON'T EDIT THIS SOLUTION FILE!
// It will be automatically filled after you finish the exercise.
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
let mut vec = vec;
// ^^^ added
vec.push(88);
vec
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn move_semantics1() {
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
// `vec0` can't be accessed anymore because it is moved to `fill_vec`.
assert_eq!(vec1, vec![22, 44, 66, 88]);
}
}