ExpertiDict

Rust · Avançado · Português · Técnico

ponteiro bruto

/põj.ˈte.ɾu ˈbɾu.tu/substantivo

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

Veja também

Todos os termos de Rust