Size: a a a

Rust — русскоговорящее сообществo

2020 October 06

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
По той же причине отклонили метод типа merge у слайсов, который склеивал бы два касающихся слайса в один большой
источник

K

Kong Ning Kuan 孔宁宽... in Rust — русскоговорящее сообществo
Mikail Bagishov
По той же причине отклонили метод типа merge у слайсов, который склеивал бы два касающихся слайса в один большой
Да, его вроде оставили но он unsound
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Kong Ning Kuan 孔宁宽
Да, его вроде оставили но он unsound
В доках его нет, так что как минимум не оставили
источник

K

Kong Ning Kuan 孔宁宽... in Rust — русскоговорящее сообществo
А, да, это я видел его кастомную реализацию
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Kong Ning Kuan 孔宁宽
А, да, это я видел его кастомную реализацию
это где?
источник

K

Kong Ning Kuan 孔宁宽... in Rust — русскоговорящее сообществo
вафель 🧇
это где?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Mikail Bagishov
А как ты проверишь, что они лежат в одной аллокации?
А какая разница, если у слайсы лайфтайм?
источник

Э

Эрик in Rust — русскоговорящее сообществo
А, хотя да, offset же требует чтобы в одной аллокации были.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Эрик
А, хотя да, offset же требует чтобы в одной аллокации были.
Любой указатель валиден внутри только одной аллокации.
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
а как указатель может указывать на две аллокации? 🤔
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
а, хотя да, можно сделать указатель на жирную структуру  или тупль например : *mut ([i32; 5555]) тогда будет потенциально один указатель на много аллокаций
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Часто бытует мнение, что в C валиден любой указатель или можно передвигать указатель на произвольный адрес (адресной арифметикой). Но это не так — стандарт указывает, что валидны только указатели, возвращённые malloc и взятые от переменных, а арифметика валидна только в пределах массивов + один элемент за концом массива.
Just sayin'... 😊
источник

AW

Alex Wow in Rust — русскоговорящее сообществo
То есть суть в том
Чтобы не переходить за границы массива и инициализировать указатель ?
источник

AW

Alex Wow in Rust — русскоговорящее сообществo
Гениус (:
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Суть в том, что всё остальное — UB! 😃
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А есть какой-то стандартный враппер над kill(3)?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Желательно вендосовместимый
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Ещё можно сотворить указатель из intptr_t , но у него не будет легитимный провенанс
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Не знаю уб это или нет
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Часто бытует мнение, что в C валиден любой указатель или можно передвигать указатель на произвольный адрес (адресной арифметикой). Но это не так — стандарт указывает, что валидны только указатели, возвращённые malloc и взятые от переменных, а арифметика валидна только в пределах массивов + один элемент за концом массива.
Just sayin'... 😊
С этой точки зрения нельзя использовать mmap и прочие функции, которые выделяют память и не являются malloc
источник