История изменений
Исправление
anonymous-angler,
(текущая версия)
:
Вектор Vec<T>
и слайсы &[T]
, &mut [T]
. Вектор ты наверяка знаешь что такое. Слайсы - это структуры вида
struct Slice<T> {
ptr: *const T,
size: usize
}
и
struct SliceMut<T> {
ptr: *mut T,
size: usize
}
с проверкой на выход за пределы, эдакие «указатели» со вшитым размером. Случайно забыть размер не выйдет, выход за пределы приведёт к панике. Реально накосячить можно только создавая свою собственную реализацию подобия вектора. Но что-то мне подсказывает, что столь популярная структура просто не смогла бы оказаться дырявой в ядре. Более того можно даже не изобретать колесо, а сделать имплементацию глобального аллокатора на основе vmalloc/vfree и использовать уже готовое, оттестированное.
Исходная версия
anonymous-angler,
:
Вектор Vec<T>
и слайсы &[T]
, &mut [T]
. Вектор ты наверяка знаешь что такое. Слайсы - это структуры вида
struct Slice<T> {
ptr: *const T,
size: usize
}
и
struct SliceMut<T> {
ptr: *mut T,
size: usize
}
проверкой на выход за пределы, эдакие «указатели» со вшитым размером. Случайно забыть размер не выйдет, выход за пределы приведёт к панике. Реально накосячить можно только создавая свою собственную реализацию подобия вектора. Но что-то мне подсказывает, что столь популярная структура просто не смогла бы оказаться дырявой в ядре. Более того можно даже не изобретать колесо, а сделать имплементацию глобального аллокатора на основе vmalloc/vfree и использовать уже готовое, оттестированное.