[an error occurred while processing this directive]
Подскажите - чем heap от стека отличается. Я думал - это одно и тоже. А заглянул в опции IAR - по разному ставятся.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
starostin
01 июля 2005 г. 12:07
Составить ответ
|||
Конференция
|||
Архив
Ответы
Спасибо за разъяснения! Более менее просветлился. Изучаю известный фат для MMC. Там как раз и основана работа на heap. Не могу понять только почуму нельзя было взять фиксированный буфер.
—
starostin
(01.07.2005 12:43
217.21.55.5
,
пустое
)
А потому, что в результате получится то же самое. Только писать и отлаживать придется самому, вместо того, что бы использовать готовое.
—
Сидоргек
(01.07.2005 12:51
213.130.3.142
,
пустое
)
Надо посмотреть эту ценную функцию. Раньше писал для 51х Там боялся как огня библиотечных функций. Уж сильно раздували код. Поэтому не интересовался.
—
starostin
(01.07.2005 13:11
217.21.55.5
,
пустое
)
Еще вопрс по теме - в каких случаях удобно применять работу с кучей?
—
starostin
(01.07.2005 12:33
217.21.55.5
,
пустое
)
Когда в процессе работы программы возникает необходимость заранее неизвестное колличество чего-нибуть заранее неизвестных размеров откладывать в памяти, и после использования, освобождать память для новых чего-нибудь.
—
Сидоргек
(01.07.2005 12:56
213.130.3.142
,
пустое
)
Ответ: (+)
—
Сидоргек
(01.07.2005 12:23
213.130.3.142
, 499 байт)
А что для нее типа фата нужна структура? И вообще с кучей обязательно иметь дело?
—
starostin
(01.07.2005 12:28
217.21.55.5
,
пустое
)
У Кернигана и Ричи приведен пример функций malloc и free. Там же приведена и структура элемента
—
Bill
(01.07.2005 12:42
195.239.108.226
, 20 байт)
Как она там работает - не наша с Вами забота. Это прописано в библиотеках Вашего компилятора. В своих проектах (использую, правда, не IAR, а CV), устанавливаю heap size = 0.
—
Сидоргек
(01.07.2005 12:33
213.130.3.142
,
пустое
)
heap - это область динамической памяти. В принципе, вся свободная область ОЗУ может быть использована под heap.
—
Bill
(01.07.2005 12:17
195.239.108.226
, 188 байт)
А что значит динамическая? Я так себе представляю модель памяти - глобальные переменные и стек. Или еще обязательно должна быть прослойка - heap?
—
starostin
(01.07.2005 12:22
217.21.55.5
,
пустое
)
Здесь имеется в виду, что программа может запрашивать у системы некоторый объем
—
Bill
(01.07.2005 12:37
195.239.108.226
, 629 байт)
В принципе, если не использовать malloc и аналогичные функции, размер heap можно установить равным 0. Не знаю, как перенесет это IAR, но в CodeVision я именно так и делаю.
—
Сидоргек
(01.07.2005 12:26
213.130.3.142
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru