А как раст понимает по какому адресу начинать вектор? Нет

ведь гарантий что он продолжаешь не наткнутся на участок памяти который уже записан?

16 ответов

29 просмотров

Есть отдельный компонент рантайма, аллокатор, который выдает непересекающиеся буферы в памяти заданного размера

Выделением и освобождением непересекающихся кусков памяти занимается аллокатор Вектор просто обращается к аллокатору когда ему надо выделить память

Lukaš 🇷🇸
Это в операционной системе?

AFAIK, аллокатор встроен в стандартную библиотеку, и его даже можно заменить на свой

Lukaš 🇷🇸
Это в операционной системе?

в составе операционной системы идет реализация рантайма С, в которую уже включен аллокатор. Многие программы им и пользуются.

Mikail Bagishov
в составе операционной системы идет реализация ран...

В частности программы на расте по умолчанию им пользуются

Lukaš 🇷🇸- Автор вопроса
Maxim Moskalets
Что-что?)

Считаете иначе?

Maxim Moskalets
Что-что?)

ну а что, glibc в большинстве дистров gnu/linux, что-то типа vscrt в винде и так далее

То скорее всего все равно будет какая-нибудь статическая библиотека, с которой программа под эту ОС будет слинкована при сборке.

Mikail Bagishov
То скорее всего все равно будет какая-нибудь стати...

Возможно, будет, возможно, нет. А *alloc вообще в jemalloc обычно в наши дни, а не напрямую в глибсе.

Lukaš 🇷🇸
Это в операционной системе?

Есть хороший доклад про выделение памяти. Правда, он не про раст, а про плюсы. Но в расте всё тоже самое.

Maxim Moskalets
Возможно, будет, возможно, нет. А *alloc вообще в ...

чтобы раст ходил в jemalloc, нужно его специально настроить.

Mikail Bagishov
чтобы раст ходил в jemalloc, нужно его специально ...

Вау, нет)) Если всё как вы утверждаете, то совсем не обязательно.

Maxim Moskalets
Вау, нет)) Если всё как вы утверждаете, то совсем ...

С какого-то древнего релиза std раста дергает те malloc/free, которые будут предоставлены при сборке/в рантайме. Чтобы гарантированно был jemalloc, нужно явно с ним слинковаться.

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

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

Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
7
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Есть тут кто занимается разработкой серваков майна? Или знакомые
meow *
3
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть ли лимиты на кол-во вебхук по домену? Стоит в данный момент 900+ ботов и бывает бот перестает отвечать (не приходят вебхуки) 🐒 Помогает только перезапуск
ᅠ [ Кому не ответил, дублируйте ]
11
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Товарищи, здравствуйте Подскажите, пожалуйста, может кто-нибудь сталкивался с такой задачей Через вебапку можно сканировать qr-код, а есть ли возможность считывать nfc?
Artem Stormageddon
8
Карта сайта