Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Как узнать размер выделенной памяти?   Найти похожие ветки 

 
dRake ©   (2005-11-29 21:06) [0]

Есть указатель, на кусок памяти, выделенной через AllocMem(),
можно ли узнать потом по этому указателю размер данный на которые он ссылается?


 
dRake ©   (2005-11-29 21:08) [1]

На всякий случай - не "на размер данных" а на "размер куска памяти"


 
jack128 ©   (2005-11-29 21:16) [2]

теоретически можно, но это не документировано, поэтому не стоит так делать..


 
Суслик ©   (2005-11-29 21:18) [3]

изучай getmem.inc и читай статью mystic"а не www.delphikingom.ru

но я согласен с [2]


 
Palladin ©   (2005-11-29 21:25) [4]

:) ну вообщето автор программы должен знать сколько он выделил памяти... правда в современной редакции Delphi это совсем не обязательно... разве что для развлекухи...


 
dRake ©   (2005-11-29 22:11) [5]

jack128 ©

>теоретически можно, но это не документировано, поэтому не стоит так >делать..

Ну я потому и спросил - ведь прочищая память через FreeMomory() менеджер должен же знать сколько ее выло выделенно, я не лазил в кишки менеджера, но предполагаю что там есть что-то типа пула указателей через который можно узнать сколько на каждый выделенно памяти :) Поиск по хелпу ничего не дал, но всетаки хотелось бы напрячь именно его. Хаками делать не хочу, ведь реализация менеджера может и поменяться в будущем.. :)

>Palladin ©  

>:) ну вообщето автор программы должен знать сколько он выделил памяти... >правда в современной редакции Delphi это совсем не обязательно... разве >что для развлекухи...

Автор то знает, вот сохранить _красиво_ это знание не позволяет архитектура некоторой кривотени под которую автор пишет :)
Короче пришлось всетаки заводить свой пул, жаль :)


 
Palladin ©   (2005-11-29 22:16) [6]

это что еще за кривотень, и для чего в ней необходимо такое столь спецефичское знание?


 
jack128 ©   (2005-11-29 22:34) [7]

dRake ©   (29.11.05 22:11) [5]
но предполагаю что там есть что-то типа пула указателей через который можно узнать сколько на каждый выделенно памяти :)

Сейчас дельфи под рукой нету, но вроде по отрицательному смещению размер блока храниться.. Хотя действительно непонятно,
> что еще за кривотень  ;)


 
dRake ©   (2005-11-30 12:22) [8]

2 Palladin

>то что еще за кривотень, и для чего в ней необходимо такое столь >спецефичское знание?

Военная тайна :)

jack128

>Сейчас дельфи под рукой нету, но вроде по отрицательному смещению >размер блока храниться.. Хотя действительно непонятно,

Гм.. а если это смещение кто нибудь затрет?


 
Плохиш ©   (2005-11-30 12:30) [9]


> Гм.. а если это смещение кто нибудь затрет?

Тогда виноват как всегда будет Билл Гейтс и его "кривая винда", которая всегда падает, потому что программист затёрший память программирует только идеальные безглючные программы, а винда ... ну ... криваяяяяя....


 
Digitman ©   (2005-11-30 12:42) [10]


> а если это смещение кто нибудь затрет?


смещение "затереть" нельзя по определению.

можно "затереть" то что находится по смещению.

BMM никак не ограничивает (и правильно делает, ибо заточен под производительность, а не под "защиту от дурака") тебя как программиста от возможности что-то там "затереть" в его внутренних структурах, и если ты умудрился (осознанно или неосознанно) нагадить там, то это целиком и полностью лежит на твоей программистской совести)


 
dRake ©   (2005-11-30 16:12) [11]

2 Digitman

>можно "затереть" то что находится по смещению.

Ясное дело :) Подумаешь - опечатался :)

>и если ты умудрился (осознанно или неосознанно) нагадить там, то это >целиком и полностью лежит на твоей программистской совести)

Ну осознанно гадить я не собираюсь - если разрабы BMM это учли то все ок : ) Просто на первый взгяд - не самое прозрачное решение этой проблемы


 
AlexWlad ©   (2005-11-30 20:12) [12]

Почитай здесь, полезно. http://www.rsdn.ru/article/Delphi/memmanager.xml


 
jack128 ©   (2005-11-30 20:24) [13]

dRake ©   (30.11.05 16:12) [11]
Просто на первый взгяд - не самое прозрачное решение этой проблемы

отнюдь, ИМХО самое очевидное решение. Таже техника используется и с строках и в дин массивах..



Страницы: 1 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.068 c
2-1134047013
GanibalLector
2005-12-08 16:03
2005.12.25
PostMessage


6-1126682500
mrDEAD
2005-09-14 11:21
2005.12.25
помогите чем можете в написаниии проги


14-1133268089
КаПиБаРа
2005-11-29 15:41
2005.12.25
Недопонимание - главный бич человечества. (restore)


1-1133454512
Aleksandr.
2005-12-01 19:28
2005.12.25
Как можно узнать, поддерживает ли Excel задаваемый цвет?


11-1095406419
Shadow HuntEr
2004-09-17 11:33
2005.12.25
UDP и всё такое