Rust, stack et heap (1/2)

Q:Comment gérer le cas de variables dont on souhaite la taille dynamique ?
A: En allouant dynamiquement de la mémoire, sur la heap.

Exemple: La structure Vector en Rust, qui est un tableau contigu de taille variable (l'équivalent d'un ArrayList Java, ou d'un.. vector en c++).

#![allow(unused)]
fn main() {
// A first way to create a vector
let mut my_first_vector = Vec::new();
println!("my_first_vector: {}", my_first_vector.capacity());
my_first_vector.push(42);
println!("my_first_vector: {}", my_first_vector.capacity());

// An other way
let mut my_second_vector = Vec::with_capacity(1);
println!("my_second_vector: {}", my_second_vector.capacity());
my_second_vector.push(42);
println!("my_second_vector: {}", my_second_vector.capacity());

// Yet another way
let mut i_m_a_pro_at_vector_now = vec![1, 2, 3];
println!("i_m_a_pro_at_vector_now: {}", i_m_a_pro_at_vector_now.capacity());
}