Ch. 20: correct text about how we got raw pointers

We no longer get the raw pointers from references, although we *could*,
because we can now use the raw pointer operator rather than an `as` cast
and thus can get them directly from a variable in scope.
This commit is contained in:
Chris Krycho
2024-10-16 11:07:09 -06:00
parent 3fdb520364
commit e934f31610

View File

@@ -88,10 +88,9 @@ By opting out of having Rust enforce these guarantees, you can give up
guaranteed safety in exchange for greater performance or the ability to
interface with another language or hardware where Rusts guarantees dont apply.
Listing 20-1 shows how to create an immutable and a mutable raw pointer from
references.
Listing 20-1 shows how to create an immutable and a mutable raw pointer.
<Listing number="20-1" caption="Creating raw pointers from references">
<Listing number="20-1" caption="Creating raw pointers with the raw borrow operators">
```rust
{{#rustdoc_include ../listings/ch20-advanced-features/listing-20-01/src/main.rs:here}}
@@ -105,9 +104,9 @@ unsafe block, as youll see in a bit.
Weve created raw pointers by using the raw borrow operators: `&raw const num`
creates a `*const i32` immutable raw pointer, and `&raw mut num` creates a `&mut
i32` mutable raw pointer. Because we created them directly from references
guaranteed to be valid, we know these particular raw pointers are valid, but we
cant make that assumption about just any raw pointer.
i32` mutable raw pointer. Because we created them directly from a local
variable, we know these particular raw pointers are valid, but we cant make
that assumption about just any raw pointer.
To demonstrate this, next well create a raw pointer whose validity we cant be
so certain of, using `as` to cast a value instead of using the raw reference