From: Ralf Jung Date: Mon, 15 Jul 2019 08:58:37 +0000 (+0200) Subject: explain Rust range syntax X-Git-Url: https://git.ralfj.de/web.git/commitdiff_plain/13622f8642fc071bedf32dba3efbd50a5906032c?hp=f1e93146eae099784ef2a73000a04e579cf6f06f explain Rust range syntax --- diff --git a/ralf/_posts/2019-07-14-uninit.md b/ralf/_posts/2019-07-14-uninit.md index 702ac47..d3fb0fe 100644 --- a/ralf/_posts/2019-07-14-uninit.md +++ b/ralf/_posts/2019-07-14-uninit.md @@ -54,7 +54,7 @@ However, if you [run the example](https://play.rust-lang.org/?version=stable&mod ## What *is* uninitialized memory? How is this possible? -The answer is that every byte in memory cannot just have a value in `0..256`, it can also be "uninitialized". +The answer is that every byte in memory cannot just have a value in `0..256` (this is Rust syntax for a left-inclusive right-exclusive range), it can also be "uninitialized". Memory *remembers* if you initialized it. The `x` that is passed to `always_return_true` is *not* the 8-bit representation of some number, it is an uninitialized byte. Performing operations such as comparison on uninitialized bytes is undefined behavior.