Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Вместо безразмерного массива структур stVarDes объявите указатель на структуру. А так оно просто обязано ругаться.
Отправлено
SM
02 августа 2007 г. 17:36
В ответ на:
Взываю к коллективному разуму форума! Пожалуйста помогите побороть incomplite arrray в применении к структурам.
отправлено rezident 02 августа 2007 г. 17:24
Составить ответ
|
Вернуться на конференцию
Ответы
Или массив с заранее определенным размером.
—
SM
(02.08.2007 17:46:58
80.92.255.53
,
пустое
)
Начхать на incomplete array, заведу отдельный тип на каждую таблицу. Но как мне оставшиеся ошибки побороть?
—
rezident
(02.08.2007 17:50:53
195.222.149.11
,
пустое
,
ссылка
)
Ну проблема там однозначно не в типе... void * для этого обычно применяют.
—
SM
(02.08.2007 17:58:33
80.92.255.53
,
пустое
)
Попробовал void * вместо unsigned char * - монопенисуально. Количество ошибок и тип их тот же самый остался.
—
rezident
(02.08.2007 18:05:30
195.222.149.11
,
пустое
)
Мне нужен инициализированный массив структур, а не ссылок на структуры.
—
rezident
(02.08.2007 17:48:12
195.222.149.11
,
пустое
)
ссылка на структуру (на начало массива структур) и массив структур это одно и то же с точки зрения компилятора. Еще вопрос - pGD уже определен на этапе определения этой структуры?
—
SM
(02.08.2007 17:50:18
80.92.255.53
,
пустое
)
Да указатель pGD определен ранее.
—
rezident
(02.08.2007 17:51:26
195.222.149.11
,
пустое
)
Приведите все вместе с объявлением pGD
—
SM
(02.08.2007 17:57:0
80.92.255.53
,
пустое
)
Вот, упростил все до минимума. Ошибки те же. Компилятор почему-то не может сделать адрес константой.
—
rezident
(02.08.2007 18:03:4
195.222.149.11
, 1162 байт)
Еще бы :) :) компилятор сто раз прав. Вместо "&pGD->" юзайте "globalData." - а по-вашему адрес не константа, так как pGD можно переприсвоить в процессе исполнения кода.
—
SM
(02.08.2007 18:05:15
80.92.255.53
,
пустое
)
Вот же блин! Спасибо, получилось!!! Не допер сразу, что извлечение адреса через указатель это операция и ее нельзя в виде константы (адреса) иметь.
—
rezident
(02.08.2007 18:08:31
195.222.149.11
, 379 байт)
И все же, почему инициализации incomplete array допустима, а incomplete struct нет?
—
rezident
(02.08.2007 18:12:38
195.222.149.11
,
пустое
)
Потому что incomplete array вне структур - это де факто указатель на первый элемент массива. А внутри структуры - это препятствие для выделения заранее известного объема памяти в сегменте данных под эту структуру.
—
SM
(02.08.2007 18:22:9
80.92.255.53
,
пустое
)
Понятно.
—
rezident
(02.08.2007 18:51:38
195.222.149.11
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите два из трёх, получится:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru