о, вот это уже по делу наконец-то, спасибо!
Получается, стандарт гарантирует, что 0 станет нулевым указателем, но не гарантирует, что нулевой указатель выглядит как 0. Хотя на практике почти всегда берут для этого 0
Выходит, (void*)0 == 0 всегда верно не потому, что это одинаковое представление в памяти, а потому что 0 неявно кастится к указателю , а они всегда равны
И тогда, получается, я был не вполне корректен, когда говорил
@Psilon, что null запихнуть в int32 это тоже самое, что 0 запихнуть (хотя на практике так и получится за редким исключением). Что интересно, ответ на переформулированный вопрос не меняется - если туда 0 запихнуть и разыменовать, то он станет нулевым указателем и исключение таки выскочит
https://t.me/rust_offtopic/194927