Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Heap Добавлено: 16.05.04 04:55  

Автор вопроса:  @CyRax PTR | Web-сайт: basicproduction.nm.ru/ | ICQ: 204447456 
Что же это всё таки такое и для чего она нужна?

Ответить

  Ответы Всего ответов: 27  

Номер ответа: 1
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #1
Добавлено: 16.05.04 17:34

3. Heap (Хип, по-русски редко говорят) - область памяти для временных данных программы. То есть, некоторое место, куда программа складывает переменные и пр.

Так ответил мне неслабый спец по мылу...

Хотя теперь мне кажется, что это стек - хотя хер их разберёт этих программёров...

8)))))))))))))))))

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 16.05.04 21:42

А что же в таком случае делает HeapAlloc, еще одни 4 Гб аллокатит к процессу !? И получается что GlobalAlloc, резервирует память где, в Heap'e ?

Ответить

Номер ответа: 3
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #3
Добавлено: 17.05.04 01:50

GlobalAlloc вообще не рекомендуется использовать в Win32. Если я не ошибаюсь, то это абсолютная функция.

Ответить

Номер ответа: 4
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #4
Добавлено: 17.05.04 09:17

HeapAlloc HeapFree ... это всё функции для выделения и освобождения памяти... в С++ аналог maloc и free ... +) просто скажем так функция выделяет кол-во памяти что задашь и возвращает указательна эту область памяти .... а free соотсвено восвобождает то что ты выделил... вот и всё.. хорошии ксатти функции.. +)

Ответить

Номер ответа: 5
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #5
Добавлено: 17.05.04 12:19

А под какие нужды чаще всего выделяется память с помощью этих хороших функций?

Ответить

Номер ответа: 6
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #6
Добавлено: 17.05.04 12:40

Ну всё от тебя зависит например как буфер для чтения чего либо или там... просто ... масив тебе надо сделать из значений и тд итп... вообщем .. для своих нужд можешь выделить ... кусочек памяти +).. а уж как будешь пользовать дело твоё...

Ответить

Номер ответа: 7
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #7
Добавлено: 17.05.04 13:08

Может и примерчик есть НЕБОЛЬШОГО размера?

Ответить

Номер ответа: 8
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 17.05.04 13:19

Короче говоря, я так понял, что эти все функции не нужны в VB т.к. там и так есть очень удобные функции фыделения памяти: тип String, динамические массивы...

А в таком случае возникает вопрос, раз функций много, какую лучше использовать !? Их же несколько...

Ответить

Номер ответа: 9
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #9
Добавлено: 17.05.04 14:17

Т.е. это что то типа эквивалента DIM a as String, b as Integer?

Я правильно понял?

Ответить

Номер ответа: 10
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #10
Добавлено: 17.05.04 16:14
В .Net heap чаще всего переводят как "куча" :)
Оно для хранения объектов ссылочных типов данных.
Объекты структурных типов хранятся в стэке...

Сорри, если в .Net эта система отличается от Win32.

Ответить

Номер ответа: 11
Автор ответа:
 Chill



ICQ: 554200 

Вопросов: 101
Ответов: 343
 Профиль | | #11 Добавлено: 17.05.04 19:44

В с++ есть операторы new и delete, а вот функции malloc, calloc, realloc и free - это функции языка Си, унаследованные с++...

Но Страуструп (создатель си++) рекомендует использовать именно new и delete, говорит, что они более быстры и безопасны =)

Если кому-то интересны сами функции, как они работают и чем отличаются, напишите я расскажу, а лучше почитайте Страуструпа =)

Вообщем в си/си++ нет таких динамич. массивов как в vb, т.ч. приходится выделять памыть с помошью этих функций... Т.е. эти функции чаще всего применяются для динамического выделения памяти под какие-либо данные...

Прочто часто встречаются ситуации, когда размер выделяемого участка узнаешь во время выполнения, а не при компиляции... вот =)

Ответить

Номер ответа: 12
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #12
Добавлено: 17.05.04 22:54

2Павел, а в С++ это тоже зовется "кучей" :)

2Chill & ALL, я С++ тоже чуток учил, и этими функциями пользовался, но С это все сюшные функции, а тут ксть: HeapAlloc (+HeapCreate), VirtualAlloc(Ex), GlobalAlloc... Они чем-то, в корне, различаются ? ведь все они служат, по сути, для одного и того же - динамического выделения памяти...

Ответить

Номер ответа: 13
Автор ответа:
 Chill



ICQ: 554200 

Вопросов: 101
Ответов: 343
 Профиль | | #13 Добавлено: 18.05.04 02:18

Принципиальной разницы вроде нет...

Дело в том, что calloc, malloc и т.д. - это функции языка, а HeapAlloc и т.д. - это функции ОС (ВинАпи)...

Для совместимости с разными платформами лучше пользоваться языковыми функциями, для быстродействия функциями ОС...

Ответить

Номер ответа: 14
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #14
Добавлено: 18.05.04 17:08

2 Chill:

- Странно, а я всегда думал что создатель Си - Риччи.

2 All:

- Понятно. Объявление строк переменной длины и массивов. Вобщем любой переменной нефиксированного размера.

А пример на VB/PB есть у кого для полной ясности?

Ответить

Номер ответа: 15
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #15 Добавлено: 18.05.04 17:11

Си - Керниган и Риччи, С++ - Бйярн Страуструп.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам