Rust · Avançado · Português · Técnico
ponteiro bruto
Ponteiros *const T e *mut T, sem garantias de validade, de lifetime ou de exclusividade. Criar um é seguro, mas desreferenciá-lo exige unsafe.
Onde usar
Aparecem em FFI e em estruturas de dados como listas ligadas. Converter de e para referências traz a responsabilidade de respeitar as regras de aliasing.
Em código
let mut x = 10;
let p = &mut x as *mut i32;
unsafe {
*p += 1;
println!("{}", *p);
}
let nulo: *const i32 = std::ptr::null();Exemplos
Converti a referência em ponteiro bruto para a chamada em C.
Desreferenciar um ponteiro bruto exige unsafe.
Cuidado
Não é um ponteiro de C livre de regras: criar uma referência inválida a partir dele continua sendo comportamento indefinido.
Sinônimos
raw pointer
Antônimos
referência