Почему нельзя сделать ссылку на память внутри условия?

Рейтинг: 3Ответов: 2Опубликовано: 16.04.2015
fn foo(mut a: &Vec<i32>){

    let mut c: Vec<i32>;

    if a[0] == 0 {
        c = vec![1; 3];
        a = &c;
    }
    println!("{:?}",a);
}

fn main(){
    let a:Vec<i32> = vec![0; 3];
    foo(&a);
}

Ошибка:

main.rs:9:14: 9:15 error: `c` does not live long enough
main.rs:9         a = &c;
                       ^

Ответы

Ответов пока нет.