реклама на сайте
подробности

 
 
> Проблемы с С++ Iar for ARM, что такое HEAP
Andryha
сообщение Jun 19 2007, 02:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 6-04-07
Пользователь №: 26 805



Здравствуйте, уважаемые участники форума, простите новичка за, может быть, глупый вопрос.. но я не могу понять... создал в ИАРЕ класс, выделил под него место, а иар не компилир, ругается, мол каких то ключей не хватает для HEAP. посмотрел Хелп про это дело но ниче не могу понять, что за HEAP и с чем его едят, и где прописывают эти самые ключи... поможите плиз:-)
Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andryha
сообщение Jun 19 2007, 12:50
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 6-04-07
Пользователь №: 26 805



Цитата(Andy Mozzhevilov @ Jun 19 2007, 10:44) *
Код покажите

кодик достаточно простой, просто не удалось его нарастить, т.к. столкнулся с проблемой
создал клас:
class read_fat_16
{
private:
char f_syst; // должен храниться код файловой системы
public:
read_fat_16 ()
{
initSD ();//инициализация карточки
}
};

Далее пытаюсь выделить под него место:
read_fat_16 *read = new read_fat_16;
тут он начинает ругаться, мол:
Fatal Error[e72]: Segment HEAP must be defined in a segment definition option (-Z, -b or -P)

но, когда я просто пишу
read_fat_16 read;
он кушает причмокивая.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Jun 19 2007, 12:57
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Andryha @ Jun 19 2007, 18:50) *
Далее пытаюсь выделить под него место:
read_fat_16 *read = new read_fat_16;
тут он начинает ругаться, мол:
Fatal Error[e72]: Segment HEAP must be defined in a segment definition option (-Z, -b or -P)

но, когда я просто пишу
read_fat_16 read;
он кушает причмокивая.


Когда вы работать через new, в динамической памяти выделяется область
для размещения объекта, и вам возвращается указатель на него.
Для того, чтобы это работало, нужно иметь динамическую память (HEAP).
Ее то у вас и нет. Нужно почитать доку на компилятор, как ее завести.
Когда вы делаете:
read_fat_16 read;
то компилятор размещает объект в статической памяти, на этапе компиляции,
или в стеке, если вы объявляете его внутри функции.
Надо ли вам именно динамическое размещение через new - решать вам. Мне ни разу пока
не понадобилось.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016