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

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

23 ответов

9 просмотров

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

записать указатель 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. Контейнер и его пёстрое содержимое Часто ли попадаются классы, которые хранят в себе массу различных дочерних объектов, таких, что время жизни последних не дольше времени жизни родителя? Далее идёт какое-то рассуждение про классы в предметной области и их связь с хипом. Ну, мысль замечательная, только одно но — чем выше ты будешь выстраивать архитектуру для работы с такими структурами, тем больше будет пользы. Т.е. не в аллокаторах хипа это надо делать, а на верхнем или среднем уровне архитектурных блоков уже в пользовательских классах программы. Ну вот и получается, статья ни о чём вообще. Статья чтобы написать статью

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта