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

Как понять при работе с памятью строки *(void**)tmp=next;//???? tmp=next;

23 ответов

17 просмотров

Без контекста не понять

записать указатель next в переменную tmp, являющуюся указателем на указатель

Это какое то присваивание указателя.

(void**) — вот это тут точно лишнее

Хрень какая-то

По адресу tmp записать значение next

Утешительный-Приз Автор вопроса
Ilya Zviagin
Без контекста не понять

Контекст: 'void FormatNewPage() { void* tmp = GetPage(); head = tmp; for(size_t i = 0; i < count-1; i++) { void* next = (char*)tmp + BlockSize; *(void**)tmp = next; tmp = next; } *(void**)tmp = NULL; }' Взято отсюда https://m.habr.com/ru/post/148657/

Утешительный Приз
Контекст: 'void FormatNewPage() { void* tmp = Get...

Проще написать аллокатор на базе boost::simple_segregated_storage.

Утешительный-Приз Автор вопроса
Flower Surgeon
Проще написать аллокатор на базе boost::simple_seg...

Да я не про проще, я не могу понять что вообще меняет строка с *(void**)tmp=, если за ней простое присвоение идет

Утешительный Приз
Да я не про проще, я не могу понять что вообще мен...

Это запись значения по адресу, хранящемуся в tmp

Утешительный Приз
Да я не про проще, я не могу понять что вообще мен...

проще найти нормальную реализацию аллокатора, а не это вот махание зайцем...

Утешительный Приз
Контекст: 'void FormatNewPage() { void* tmp = Get...

ЭТо по любому какое-то упоротое говно...

Утешительный Приз
Контекст: 'void FormatNewPage() { void* tmp = Get...

Слушай. это же очередная говностатья с хабра, зачем её читать вообще?

Утешительный-Приз Автор вопроса
Ilya Zviagin
Слушай. это же очередная говностатья с хабра, заче...

Написал в Гугл что-то про virtual_alloc а там эта статья, ну я возьми да прочитай

Arthur
а что не так?

Лучше скажи что там так...

Ilya Zviagin
Лучше скажи что там так...

у меня маловато знаний чтобы судить, потому хотелось бы узнать

Arthur
у меня маловато знаний чтобы судить, потому хотело...

Там просто в статье вроде мысли не видно, так что не интересно далее изучать

Arthur
у меня маловато знаний чтобы судить, потому хотело...

Ну гляди. (раз уж я залез в это говно) 0. А нужна ли нам ручная работа с памятью? В первую очередь проверим, насколько умный аллокатор может ускорить работу с памятью. И далее код тестов. ЧТО ОНИ ПРОВЕРЯЮТ? неизвестно. Но разница по времени получилась в 10 раз (62 ms против 650 ms). В сторону чего хотя бы — хотелось бы знать... Т.е. автор даже два слова вразумительно написать не может. 1. Пул объектов Очевидное решение — забрать у ОС большой блок памяти и разбить его на равные блоки размера sizeof(Node), при выделении памяти брать блок из пула, при освобождении — возвращать в пул. вот как раз именно это и делает хип в CRT. Этот крендель пишет поверх него свой... нафига? 2. Контейнер и его пёстрое содержимое Часто ли попадаются классы, которые хранят в себе массу различных дочерних объектов, таких, что время жизни последних не дольше времени жизни родителя? Далее идёт какое-то рассуждение про классы в предметной области и их связь с хипом. Ну, мысль замечательная, только одно но — чем выше ты будешь выстраивать архитектуру для работы с такими структурами, тем больше будет пользы. Т.е. не в аллокаторах хипа это надо делать, а на верхнем или среднем уровне архитектурных блоков уже в пользовательских классах программы. Ну вот и получается, статья ни о чём вообще. Статья чтобы написать статью

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта