помогите. возникла проблема при выделении динамической памяти под структуру.
вот сама структура
Код
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