Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

явное приведение к типу указателя на динамически выделенную память

Отправлено Гамма СПб 05 июля 2007 г. 15:07


в коде нужно много структур инициализировать, инициализируются они в стороннем модуле, в который передается указатель на структуру А и указатель на другую структуру Б.

чтобы не выделять память в стеке для большого количества локальных переменных-указателей на каждый тип структуры Б, выделяю память динамически:

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). Это я что-то не так делаю, или компилятор?

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 93:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru