{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiemmbdzurlit4pjqv4vbzqg6t5vfwvaaizyzdgbbnnwyrfsut3yja",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3meichreybzk2"
  },
  "path": "/t/idea-pre-rfc-null-free-pointers/23991#post_10",
  "publishedAt": "2026-02-10T05:21:16.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "On most physical hardware: a) 0x0 is a valid address, but b) 0x0 is special in some way that means that general-purpose memory operations there wouldn't really make sense. (For example, it's often part of an interrupt vector – and if you ever place an incorrect value into an interrupt vector, even for a split second, the processor could potentially end up executing from an arbitrary address in kernel mode, which is so close to \"anything could happen\" undefined behavior that the distinction doesn't really matter.)\n\nSo even if you're doing the sort of low-level programming where you might validly want to touch address 0, you wouldn't be using it as a general-purpose addess anyway – your program should generally always be aware of whether it's accessing address 0 or not. And if it is, just do a volatile write or read, which are allowed on address 0. (It probably has to be volatile anyway, and possibly even atomic, in order to prevent whatever special meaning is assigned to address 0 from violating assumptions made by the compiler.)",
  "title": "Idea / Pre-RFC: Null-free pointers"
}