Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
чтобы не выделять память в стеке для большого количества локальных переменных-указателей на каждый тип структуры Б, выделяю память динамически:
STRUCT_A a1;
STRUCT_A a2;
STRUCT_A a3;STRUCT_B1 b1;
STRUCT_B2 b2;
STRUCT_B3 b3;
/* ... */void asdf (void)
{
void *tmp;
tmp = malloc(sizeof(STRUCT_A)/sizeof(U08));tmp = (STRUCT_B1*)tmp; /* катит */
(STRUCT_B1*)tmp->element = 0x11; /* не катит */
*(STRUCT_B1*)tmp.element = 0x11; /* не катит */free(tmp); /* тут тип не привожу, все равно что выше не компилится*/
Init_Struct(&a1, (void*)&b1);
/* .......... */
}
Собстно вопрос в чем - указатель на void явно привожу к укащателю на тип который есть структура. Но обратится к полям структуры не получается:
error: request for member 'element' in something not a structure or union
Компилятор С30 (GCC). Это я что-то не так делаю, или компилятор?