Size: a a a

2021 April 17

К

Коля🤔🎭 in rust_offtopic
Ну так у тебя на стеке лежат две эти переменные. *(uintptr_t)p = p, *(uintptr_t)(p + 1) = q
источник

D

Dima in rust_offtopic
прочти плиз про что речь идет
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
кто сказал что они именно в таком порядке лежат?
источник

К

Коля🤔🎭 in rust_offtopic
ну или наоборот, сути не меняет
источник

К

Коля🤔🎭 in rust_offtopic
Результат тот же в данном коде
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
не говоря о том что числовая эквивалентность поинтеров не означает их эквивалентность
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
кек
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
нет
источник

К

Коля🤔🎭 in rust_offtopic
ок))
источник

D

Dima in rust_offtopic
вроде вот  это еще не закрыли https://bugs.llvm.org/show_bug.cgi?id=34548
источник

EG

Emmanuel Goldstein in rust_offtopic
Так очень сильно нельзя, полагаю.
источник

D

Dima in rust_offtopic
что нельзя?
источник

EG

Emmanuel Goldstein in rust_offtopic
Сравнивать поинтеры с разным provenance.
С точки зрения стандарта C, операция на 4 строке — false.
источник

EG

Emmanuel Goldstein in rust_offtopic
Но я не видел ни одного компилятора C, который нормально соблюдает эти стандарты, так что так просто не надо делать.
источник

D

Dima in rust_offtopic
нет
источник

D

Dima in rust_offtopic
ну да
источник

EG

Emmanuel Goldstein in rust_offtopic
Что «нет»?
источник

D

Dima in rust_offtopic
С точки зрения стандарта C, операция на 4 строке — false.
источник

D

Dima in rust_offtopic
блин, нет вот этому С точки зрения стандарта C, операция на 4 строке — false.
источник

EG

Emmanuel Goldstein in rust_offtopic
6.5.9.6 стандарта C11
источник