D
*const, мы его кастанули в *mut для каких-то целей, а потом, опять в *const не разыменовывая. В остальных случаях, везде пишут, что UBили я ошибаюсь?
Size: a a a
D
*const, мы его кастанули в *mut для каких-то целей, а потом, опять в *const не разыменовывая. В остальных случаях, везде пишут, что UBV
D
D
gо
*mut, если мы из него только читаем.UnsafeCell и мы не создаём data race таким образом.Э
*const T и *mut T существует только для программистов, чтобы они меньше ошибались при работе с указателями. Для компилятора разницы между этими типами нет, не считая того, что они разные типы.Э
*const T в *mut T можно без UB.Э
ptr::write на *mut T, полученный из *const T, полученный из &T — это уже UB.gо
*mut-указателю, полученному из *const-указателя, если данные не лежат в UnsafeCell» зависит от того, как мы получили этот *const-указательD
Э
UnsafeCell такие касты — это UB.Э
D
АИ
AL
2 | let قيمة =3.14;
| ^^^^ help: if this is intentional, prefix it with an underscore: `_قيمة`
П
gо
AL
А⚙
gо