Главная страница
    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.48 MB
Время: 0.011 c
3-1131359266
M@xim
2005-11-07 13:27
2005.12.25
Клиент - сервер


14-1133279046
Piter
2005-11-29 18:44
2005.12.25
Сотовая связь в Германии


2-1133878661
vhs
2005-12-06 17:17
2005.12.25
не рабоатет клавиши delete ?!


3-1131016316
oleggar
2005-11-03 14:11
2005.12.25
Clipper


4-1129891140
GuAV
2005-10-21 14:39
2005.12.25
Правильный Scroll Box





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский