Страница: 1 | 2 |
3. Heap (Хип, по-русски редко говорят) - область памяти для временных данных программы. То есть, некоторое место, куда программа складывает переменные и пр. Так ответил мне неслабый спец по мылу... Хотя теперь мне кажется, что это стек - хотя хер их разберёт этих программёров... 8))))))))))))))))) А что же в таком случае делает HeapAlloc, еще одни 4 Гб аллокатит к процессу !? И получается что GlobalAlloc, резервирует память где, в Heap'e ? GlobalAlloc вообще не рекомендуется использовать в Win32. Если я не ошибаюсь, то это абсолютная функция. HeapAlloc HeapFree ... это всё функции для выделения и освобождения памяти... в С++ аналог maloc и free ... +) просто скажем так функция выделяет кол-во памяти что задашь и возвращает указательна эту область памяти .... а free соотсвено восвобождает то что ты выделил... вот и всё.. хорошии ксатти функции.. +) А под какие нужды чаще всего выделяется память с помощью этих хороших функций? Ну всё от тебя зависит например как буфер для чтения чего либо или там... просто ... масив тебе надо сделать из значений и тд итп... вообщем .. для своих нужд можешь выделить ... кусочек памяти +).. а уж как будешь пользовать дело твоё... Может и примерчик есть НЕБОЛЬШОГО размера? Короче говоря, я так понял, что эти все функции не нужны в VB т.к. там и так есть очень удобные функции фыделения памяти: тип String, динамические массивы... Т.е. это что то типа эквивалента DIM a as String, b as Integer? Я правильно понял? В с++ есть операторы new и delete, а вот функции malloc, calloc, realloc и free - это функции языка Си, унаследованные с++... Но Страуструп (создатель си++) рекомендует использовать именно new и delete, говорит, что они более быстры и безопасны Если кому-то интересны сами функции, как они работают и чем отличаются, напишите я расскажу, а лучше почитайте Страуструпа Вообщем в си/си++ нет таких динамич. массивов как в vb, т.ч. приходится выделять памыть с помошью этих функций... Т.е. эти функции чаще всего применяются для динамического выделения памяти под какие-либо данные... Прочто часто встречаются ситуации, когда размер выделяемого участка узнаешь во время выполнения, а не при компиляции... вот 2Павел, а в С++ это тоже зовется "кучей" 2Chill & ALL, я С++ тоже чуток учил, и этими функциями пользовался, но С это все сюшные функции, а тут ксть: HeapAlloc (+HeapCreate), VirtualAlloc(Ex), GlobalAlloc... Они чем-то, в корне, различаются ? ведь все они служат, по сути, для одного и того же - динамического выделения памяти... Принципиальной разницы вроде нет... Дело в том, что calloc, malloc и т.д. - это функции языка, а HeapAlloc и т.д. - это функции ОС (ВинАпи)... Для совместимости с разными платформами лучше пользоваться языковыми функциями, для быстродействия функциями ОС... 2 Chill: - Странно, а я всегда думал что создатель Си - Риччи. 2 All: - Понятно. Объявление строк переменной длины и массивов. Вобщем любой переменной нефиксированного размера. А пример на VB/PB есть у кого для полной ясности? Си - Керниган и Риччи, С++ - Бйярн Страуструп.
Вопрос: Heap
Добавлено: 16.05.04 04:55
Автор вопроса: @CyRax PTR | Web-сайт:
Что же это всё таки такое и для чего она нужна?
Ответы
Всего ответов: 27
Номер ответа: 1
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #1
Добавлено: 16.05.04 17:34
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 16.05.04 21:42
Номер ответа: 3
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #3
Добавлено: 17.05.04 01:50
Номер ответа: 4
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #4
Добавлено: 17.05.04 09:17
Номер ответа: 5
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #5
Добавлено: 17.05.04 12:19
Номер ответа: 6
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #6
Добавлено: 17.05.04 12:40
Номер ответа: 7
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #7
Добавлено: 17.05.04 13:08
Номер ответа: 8
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #8
Добавлено: 17.05.04 13:19
А в таком случае возникает вопрос, раз функций много, какую лучше использовать !? Их же несколько...
Номер ответа: 9
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #9
Добавлено: 17.05.04 14:17
Номер ответа: 10
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #10
Добавлено: 17.05.04 16:14
В .Net heap чаще всего переводят как "куча"
Оно для хранения объектов ссылочных типов данных.
Объекты структурных типов хранятся в стэке...
Сорри, если в .Net эта система отличается от Win32.
Номер ответа: 11
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #11
Добавлено: 17.05.04 19:44
Номер ответа: 12
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #12
Добавлено: 17.05.04 22:54
Номер ответа: 13
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #13
Добавлено: 18.05.04 02:18
Номер ответа: 14
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #14
Добавлено: 18.05.04 17:08
Номер ответа: 15
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #15
Добавлено: 18.05.04 17:11