|
Обращение к элементу двухмерного массива используя адрес массива |
|
|
|
Dec 24 2010, 14:13
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Dec 28 2010, 17:25
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (XVR @ Dec 28 2010, 22:22)  ВСЕ ОСТАЛЬНЫЕ операции на самом деле производятся именно с этим указателем. Совершенно верно. Вот цитата из стандарта, желающие могут поспорить с ним: QUOTE 6.3.2.1 Lvalues, arrays, and function designators 3. Except when it is the operand of the sizeof operator or the unary & operator, or is a string literal used to initialize an array, an expression that has type ‘‘array of type’’ is converted to an expression with type ‘‘pointer to type’’ that points to the initial element of the array object and is not an lvalue.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
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 rezident А если так?
Кодtemp2 = temp[0].type;
temp[... Dec 25 2010, 21:06 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 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|