Untitled

 avatar
unknown
plain_text
a year ago
627 B
14
Indexable
use std::mem::size_of_val;

fn factorial_show_stack(n: u64) -> u128 {
    // This variable lives on the stack
    let local_n = n;
    println!(
        "Value: {local_n}, Memory Address: {:p}, Size: {}",
        &local_n,
        size_of_val(&local_n)
    );

    if n <= 1 {
        1
    } else {
        (n as u128) * factorial_show_stack(n - 1)
    }
}

fn main() {
    let n = 5;
    println!("Calculating factorial({n})");

    let result = factorial_show_stack(n);
    println!("Factorial result: {result}");

    // Optional: Uncomment to (likely) cause a stack overflow
    // let _ = factorial_show_stack(100_000);
}
Editor is loading...
Leave a Comment