Tour de Rust Table des matières

Amis familiers

Revenons sur quelques pointeurs intelligents que tu connais déjà: Vec<T> et String.

Vec <T> est un pointeur intelligent vers des octets en mémoire. Le compilateur Rust n'a aucune idée de la manière dont il faut interpréter ces octets. Le pointeur intelligent est capable d'interpréter ces octets en gardant une trace de l'endroit dans ces octets où une structures de données commence et se termine. Le pointeur intelligent déréférence un pointeur brut pour exposer la structure de données dans une belle interface ergonomique propre que nous utilisons (par exemple my_vec [3]).

De même, String garde une trace des octets en mémoire et restreint par programmation le contenu qui y est écrit à toujours être de l'utf-8 valide. Il déréférence cette région de mémoire dans un type&str.

Ces deux structures de données doivent procéder à un déréférencement dangereux de pointeurs bruts.

Détails de la mémoire: