Код
typedef int_fast16_t im_int;
typedef struct
{
im_int Left;
im_int Top;
im_int Right;
im_int Bottom;
} im_rect;
typedef struct {
im_int Type;
im_rect OuterRect;
im_rect InnerRect;
void * Widget;
im_int State;
char * Title;
char * Text;
char * Hint;
pt2Function Function;
void * AddInf;
im_pixel BkPixel;
uchar AutoSize;
pt2Function DrawFunction;
} im_widget;
im_rect TestRect = { 5, 6, 7, 8 };
im_widget wFKey[4];
wFKey[0].InnerRect.Left = 5;
memcpy(&wFKey[1].InnerRect, &wFKey[0].InnerRect, sizeof(im_rect)); // Работает
wFKey[1].InnerRect = wFKey[0].InnerRect; // Виснет
wFKey[1].InnerRect = TestRect; // Работает
typedef struct
{
im_int Left;
im_int Top;
im_int Right;
im_int Bottom;
} im_rect;
typedef struct {
im_int Type;
im_rect OuterRect;
im_rect InnerRect;
void * Widget;
im_int State;
char * Title;
char * Text;
char * Hint;
pt2Function Function;
void * AddInf;
im_pixel BkPixel;
uchar AutoSize;
pt2Function DrawFunction;
} im_widget;
im_rect TestRect = { 5, 6, 7, 8 };
im_widget wFKey[4];
wFKey[0].InnerRect.Left = 5;
memcpy(&wFKey[1].InnerRect, &wFKey[0].InnerRect, sizeof(im_rect)); // Работает
wFKey[1].InnerRect = wFKey[0].InnerRect; // Виснет
wFKey[1].InnerRect = TestRect; // Работает
Т.е. виснет при копировании вложенных структур внутри массива.