реклама на сайте
подробности

 
 
> Обращение к элементу двухмерного массива используя адрес массива
LEVENVORF
сообщение Dec 24 2010, 14:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 14-03-10
Из: BELARUS
Пользователь №: 55 953



Код
//Структура описывающая подпрофиль
typedef struct {
  unsigned short type;
  unsigned short signal;
} sub_profile;

//Массив подпрофиля 1
const sub_profile SUB_PROFILE_1 = {
330,
400
};

//Массив подпрофиля 2
const sub_profile SUB_PROFILE_2 = {
100,
1200
};

......

//Массив подпрофиля n
const sub_profile SUB_PROFILE_n = {
1,
2
};

Массив профиля состоящий из указателей на подпрофили
Код
const sub_profile * PROFILE_1[] = {&SUB_PROFILE_1, &SUB_PROFILE_2, ... , &SUB_PROFILE_n, 0};

И еще один массив содержащий указатели на профили
Код
const sub_profile ** PROFILE[] = {PROFILE_1, ... , PROFILE_n, 0};

Массив PROFILE[] не объявлен, но известно что он начинается с адреса 0x0801F000 (по этому адресу он записывается при помощи другого проекта).
Каким образом я могу обратиться к элементу структуры определенного подпрофиля, определенного профиля.
При попытке:
Код
#define PROFILE                ((sub_profile **)(0x0801F000))

unsigned int temp;
  
temp = PROFILE[1][0]->type;

IAR ARM 5.50 выдает ошибку expression must have pointer type
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Dec 25 2010, 21:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А если так?
Код
temp2 = temp[0].type;

temp[0] уже получает значение адреса структуры, а чтобы извлечь элемент структуры нужно применить "." (оператор "точка"). Вы же пытаетесь адрес самой структуры применить как указатель на элемент структуры, но он им не является.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- LEVENVORF   Обращение к элементу двухмерного массива используя адрес массива   Dec 24 2010, 14:13
- - rezident   Цитата(LEVENVORF @ Dec 24 2010, 22:13) IA...   Dec 25 2010, 17:53
- - LEVENVORF   int для stm32f 4-х байтный. Так как же мне все-т...   Dec 25 2010, 18:33
|- - rezident   Цитата(LEVENVORF @ Dec 26 2010, 02:33) Та...   Dec 25 2010, 19:05
- - LEVENVORF   Попробовал вот так: Код#define PROFILE (...   Dec 25 2010, 19:51
- - rezident   На какую именно строку ругается?   Dec 25 2010, 20:35
|- - LEVENVORF   Цитата(rezident @ Dec 26 2010, 01:35) На ...   Dec 25 2010, 20:37
- - sigmaN   ну так чтобы из указателя на указатель получить у...   Dec 25 2010, 20:35
- - LEVENVORF   Цитата(rezident @ Dec 26 2010, 02:06) А е...   Dec 25 2010, 21:30
- - sigmaN   Разыменовывать, разыменовывать же) вот это даже пр...   Dec 26 2010, 01:11
- - LEVENVORF   не компилируется. ругается на строку: Цитата(sigma...   Dec 26 2010, 16:05
- - rezident   Ну вот так точно уж должно работать Код#define PRO...   Dec 26 2010, 17:38
- - sigmaN   Цитатане компилируется. ругается на строку:компиля...   Dec 26 2010, 17:54
- - rezident   Вот так тоже работает, но лично меня сложность так...   Dec 26 2010, 18:17
- - sigmaN   Топикстартер, а нам вообще точно нужен указатель н...   Dec 26 2010, 18:36
|- - rezident   Цитата(sigmaN @ Dec 27 2010, 02:36) И воо...   Dec 26 2010, 18:52
- - sigmaN   я то проверял и у меня реально работало же. могу ...   Dec 26 2010, 19:36
|- - rezident   Цитата(sigmaN @ Dec 27 2010, 03:36) я то ...   Dec 26 2010, 19:59
- - sigmaN   тогда наверное дело в размере указателя.... щас на...   Dec 26 2010, 20:25
- - LEVENVORF   компилируется и работает. Цитата(rezident @ D...   Dec 26 2010, 20:58
- - sigmaN   скобок действительно не хватало и похоже, что на л...   Dec 26 2010, 21:18
|- - Сергей Борщ   QUOTE (sigmaN @ Dec 27 2010, 02:18) Но я ...   Dec 27 2010, 05:01
|- - XVR   Цитата(Сергей Борщ @ Dec 27 2010, 11:01) ...   Dec 27 2010, 13:58
|- - Сергей Борщ   QUOTE (XVR @ Dec 27 2010, 18:58) Почти та...   Dec 27 2010, 18:58
|- - ViKo   Цитата(Сергей Борщ @ Dec 27 2010, 23:58) ...   Dec 28 2010, 07:26
||- - Сергей Борщ   QUOTE (ViKo @ Dec 28 2010, 12:26) Только ...   Dec 28 2010, 08:00
||- - ViKo   Цитата(Сергей Борщ @ Dec 28 2010, 13:00) ...   Dec 28 2010, 08:47
|- - rezident   Цитата(Сергей Борщ @ Dec 28 2010, 02:58) ...   Dec 28 2010, 11:43
|- - Сергей Борщ   QUOTE (rezident @ Dec 28 2010, 16:43) Раз...   Dec 28 2010, 12:56
|- - rezident   Цитата(Сергей Борщ @ Dec 28 2010, 20:56) ...   Dec 28 2010, 13:10
|- - GetSmart   Цитата(Сергей Борщ @ Dec 28 2010, 20:56) ...   Dec 28 2010, 14:43
|- - ViKo   Цитата(GetSmart @ Dec 28 2010, 19:43) одн...   Dec 28 2010, 15:08
- - LEVENVORF   Цитата(Сергей Борщ @ Dec 27 2010, 10:01) ...   Dec 27 2010, 07:39
|- - Сергей Борщ   QUOTE (LEVENVORF @ Dec 27 2010, 12:39) По...   Dec 27 2010, 07:55
|- - demiurg_spb   Есть очень хорошее правило, прочитанное мной где-т...   Dec 27 2010, 10:52
- - sigmaN   temp = PROFILE[1][0]->type; даа, а ведь и правд...   Dec 27 2010, 07:44
- - sigmaN   ЦитатаЕсть очень хорошее правило, прочитанное мной...   Dec 27 2010, 15:48
- - GetSmart   В книжках так же пишут, что детей находят в капуст...   Dec 28 2010, 15:21
|- - ViKo   Цитата(GetSmart @ Dec 28 2010, 20:21) В к...   Dec 28 2010, 16:26
- - XVR   По поводу массив/указатель уже где то тут выясняли...   Dec 28 2010, 16:51
- - Сергей Борщ   QUOTE (rezident @ Dec 28 2010, 18:10) Раз...   Dec 28 2010, 17:14
- - XVR   Если подходить строго, то с массивом в С определен...   Dec 28 2010, 17:23
|- - Сергей Борщ   QUOTE (XVR @ Dec 28 2010, 22:22) ВСЕ ОСТА...   Dec 28 2010, 17:25
- - ViKo   Решил сравнить адресную и индексную арифметику на ...   Dec 28 2010, 17:55
|- - XVR   Цитата(ViKo @ Dec 28 2010, 23:55) Решил с...   Dec 28 2010, 18:06
||- - ViKo   Цитата(XVR @ Dec 28 2010, 23:06) Включите...   Dec 28 2010, 18:30
|- - Сергей Борщ   QUOTE (ViKo @ Dec 28 2010, 22:55) В любом...   Dec 28 2010, 18:49
||- - ViKo   Цитата(Сергей Борщ @ Dec 28 2010, 23:49) ...   Dec 28 2010, 18:58
||- - singlskv   Цитата(ViKo @ Dec 29 2010, 00:58) Похоже,...   Dec 28 2010, 19:40
||- - Сергей Борщ   QUOTE (ViKo @ Dec 28 2010, 23:58) Это нич...   Dec 29 2010, 05:26
||- - XVR   Цитата(Сергей Борщ @ Dec 29 2010, 11:26) ...   Dec 29 2010, 05:50
||- - ViKo   Цитата(Сергей Борщ @ Dec 29 2010, 10:26) ...   Dec 29 2010, 06:59
||- - XVR   Цитата(ViKo @ Dec 29 2010, 12:59) Должна ...   Dec 29 2010, 16:54
||- - ViKo   Цитата(XVR @ Dec 29 2010, 21:54) Не должн...   Dec 30 2010, 07:21
||- - demiurg_spb   В тему указатели-массивы (накидал примерчик за 5 м...   Dec 30 2010, 08:09
|- - GetSmart   Цитата(ViKo @ Dec 29 2010, 01:55) Результ...   Dec 28 2010, 19:03
|- - ViKo   Цитата(GetSmart @ Dec 29 2010, 00:03) Не ...   Dec 28 2010, 19:11
- - sigmaN   ага, только эти a b c тоже как-бээ массивы указате...   Dec 30 2010, 07:58
|- - ViKo   Цитата(sigmaN @ Dec 30 2010, 12:58) ага, ...   Dec 30 2010, 13:31
- - GetSmart   36?   Dec 30 2010, 12:04


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 04:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01422 секунд с 7
ELECTRONIX ©2004-2016