Size: a a a

2021 May 01

AN

Alex Noname in rust_offtopic
ну вот ммап это уже виртуальная память
источник

EG

Emmanuel Goldstein in rust_offtopic
Он не может вернуть object, потому что он его не инициализирует
источник

EG

Emmanuel Goldstein in rust_offtopic
Но туда можно положить object и у него будет лайфтайм
источник

AN

Alex Noname in rust_offtopic
типа ссзб если так сделал)
источник

EG

Emmanuel Goldstein in rust_offtopic
И этот поинтер may be ... used to access such an objcet
источник

B

Börgar in rust_offtopic
а, ну да
источник

EG

Emmanuel Goldstein in rust_offtopic
У тебя вся память виртуальная.
источник

EG

Emmanuel Goldstein in rust_offtopic
mmap() ничем не хуже malloc() в этом плане.
mmap() хуже malloc() в том плане, что C об mmap() ничего не знает.
источник

EG

Emmanuel Goldstein in rust_offtopic
А вот realloc() уже возвращает pointer to a new object
источник

EG

Emmanuel Goldstein in rust_offtopic
Потому что предполагает, что старый был уже инициализирован
источник

EG

Emmanuel Goldstein in rust_offtopic
Соответственно, это — UB
_Bool *a = malloc(1);
if (a == NULL) return;
a = realloc(a, 1);
источник

B

Börgar in rust_offtopic
гвоздь мне в кеды
источник

EG

Emmanuel Goldstein in rust_offtopic
Опять же, ни один реальный компилятор этим не воспользуется
источник

EG

Emmanuel Goldstein in rust_offtopic
Если бы компиляторы реально так брали и пользовались UB в коде, то у нас бы всё не работало ещё больше, чем обычно
источник

B

Börgar in rust_offtopic
так а о чем мы говорили?
источник

B

Börgar in rust_offtopic
о поинтере из числа во
источник

EG

Emmanuel Goldstein in rust_offtopic
Про эмбед и корректность концепта «получить поинтер из числа в надежде, что он указывает в какое-то полезное место».
источник

EG

Emmanuel Goldstein in rust_offtopic
Это работает, разумеется, но не потому, что должно.
источник

B

Börgar in rust_offtopic
а, короче это не UB тк в рефмануале объекты доопределяются
источник

EG

Emmanuel Goldstein in rust_offtopic
В рефмануале чего?
источник