172 похожих чатов

#Solved Ребят, ночной #вопрос Как лучше массив массивов байт хранить как

Vec<Box<[u8]>> или Vec<Vec<u8>> ?
P.s. Получаю и отдаю потом &[u8]
P.p.s. Я узнал что Box может хранить максимальный размер только isize, но у меня предполагается хранить максимальный размер u32 по сути, что в 2 раза больше допустимого в Box, значит видимо только Vec<Vec<u8>> полойдет?
P.p.p.s. Или какой-то извращенный формат Vec<(Box<[u8]>, Option<Box<[u8]>>)>, но такое колличество байт будет скорее исключением, чем правилом))

6 ответов

3 просмотра

> Я узнал что Box может хранить максимальный размер только isize што. Box ничего кроме поинтера не хранит.

Adv0cat- Автор вопроса
Jøhn Đøꝩsøn
> Я узнал что Box может хранить максимальный разм...

А как тогда понимать Boxes also ensure that they never allocate more than isize::MAX bytes. https://doc.rust-lang.org/std/boxed/index.html

Adv0cat
А как тогда понимать Boxes also ensure that they n...

isize это pointer-sized integer. Естественно что физически невозможно выделить больше памяти чем процессор может адресовать.

Adv0cat- Автор вопроса
Jøhn Đøꝩsøn
isize это pointer-sized integer. Естественно что ф...

1. А разве процессор адресует не usize? 2. Плюс там говорится allocate more than isize::MAX bytes Что как по мне означает это относится не к поинтеру (по сути числу isize), о котором вы говорите, а о байтах, что за этим поинтером находится в куче, потому что до этого там есть фраза Box<T>, casually referred to as a 'box', provides the simplest form of heap allocation in Rust. Boxes provide ownership for this allocation, and drop their contents when they go out of scope.

Adv0cat
1. А разве процессор адресует не usize? 2. Плюс та...

А как ты будешь адресовать конец буффера, который длиннее чем можно выразить в размере поинтера?

Adv0cat- Автор вопроса
Jøhn Đøꝩsøn
А как ты будешь адресовать конец буффера, который ...

Не совсем понял вопроса 😊 Но предполагаю такие ситуации: 1. Если поинтер будет 4096, а размер буфера usize::MAX-4096, например. 2. Или например, поинтер будет isize::MAX + 4096, а буфер isize::MAX - 4096

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
11
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
9
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
это группа токсиков или тех кто помогает?
Ибрагим
9
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
У кого-нибудь есть под рукой функция кодирования юникода, которая из фразы На русском сделает \u041d\u0430\u0020\u0440\u0443\u0441\u0441\u043a\u043e\u043c ?
Daniil Smolyakov
7
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Карта сайта