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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> ОЗУ у f1611
CAHTA_1939
сообщение Nov 7 2007, 13:10
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 11-08-07
Пользователь №: 29 713



помогите. возникла проблема при выделении динамической памяти под структуру.

вот сама структура
Код
struct sMENU_WIN  {
                      byte **labelname;            // строка меню.
                      byte i_labelname;            // длина labelname.
                      bit  f_flag;                 // поддержка флага.
                      bit  flag;                   // состояние флага.
                      bit  f_goto;                 // поддержка перехода.
                      byte ptr_fgoto;              // "переход"
                      bit  f_func_exe;
                      byte *ptr_func_exe;
                  };

struct _window_   {
                     struct sMENU_WIN *_win;
                  };

struct sMENU      {
                     byte PP;                       //
                     byte *stack;                   //
                     byte *stack_1;                 //
                    
                     struct _window_ ss0;           //window#0
                     struct _window_ ss1;           //window#1
                  };
                    
struct _window_ *p_window_[2];                      //кол-во окон!
struct sMENU _menu_;                                //


это я делаю для удобства.
Код
void ini_p_window(&_menu_);

void ini_p_window(struct sMENU *p)
{
   p_window_[0] = &p->ss0; // main
   p_window_[1] = &p->ss1; // window 1
}



а вот сама функция для выделения памяти и инициализации
Код
void ini_struct(&_menu_);

void ini_struct(struct sMENU *ptr)
{

...

   (*p_window_[0])._win = (struct sMENU_WIN*)malloc(13*sizeof(struct sMENU_WIN));
  
   if((*p_window_[0])._win == NULL){ _puts(1, 0, mem_err); return;}
   else                            { _puts(1, 0, OK); }

...


при выделении до (6*sizeof(struct sMENU_WIN) все работает нормально. а если больше 6, то возникает ошибка.

если в структуре вместо struct sMENU_WIN *_win; написать struct sMENU_WIN _win[13];
то все будет работать хорошо. но мне нужно чтобы выделялась динамически

Сообщение отредактировал CAHTA_1939 - Nov 7 2007, 13:16
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 7 2007, 14:34
Сообщение #17


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(CAHTA_1939 @ Nov 7 2007, 15:10) *
при выделении до (6*sizeof(struct sMENU_WIN) все работает нормально. а если больше 6, то возникает ошибка.
Так посмотрите, сколько памяти вы отвели под HEAP. И посчитайте, сколько запрашиваете. Еще учтите, что кроме выделения вам N байт памяти резервируется несколько служебных для поддержания кучи, т.е. память под кучу надо резервировать с запасом.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
CAHTA_1939
сообщение Nov 7 2007, 14:42
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 11-08-07
Пользователь №: 29 713



угу, уже посмотрел. там по стандаргу выделенно чтото около 80. я поставил 2048... откуда будет отниматься эта память из озу или из пзу?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 7 2007, 17:09
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(CAHTA_1939 @ Nov 7 2007, 16:42) *
угу, уже посмотрел. там по стандаргу выделенно чтото около 80. я поставил 2048... откуда будет отниматься эта память из озу или из пзу?
По какому стандарту? 07.gif Что-то я не слышал, чтобы объекты динамически размещались в ПЗУ. Кончно из ОЗУ. Загляните в .xcl - там это все указывается.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 20:26
Рейтинг@Mail.ru


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