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

 
 
> массив с указателями массивов, IAR указатели массивов
NickSmith
сообщение Feb 27 2011, 23:14
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 21-10-09
Пользователь №: 53 117



Никак не могу одолеть следующую проблему:
Необходимо создать несколько многомерных массивов, а для удобства работы с ними создать массив с ссылками на них:
Создаю:
Код
__eeprom unsigned int m3 [10][2];
__eeprom unsigned int m4 [10][2];
__eeprom unsigned int m7 [10][2];
unsigned int __eeprom *bdz[]={*m3,*m4,*m7};

Теперь хочу обратится например к m4 строке 3 ячейке 0.
Типа temp=bdz[1][3][0]
Пишу
Код
unsigned int temp;
int main( void )
{
temp=*(bdz[2]{[3][0]});
}

Компилятор ругается, пробовал по всякому. Много раз перечитывал K&R главу 5 . Указатели и массивы. В общем понимание есть, но как это правильно описать хоть убей не могу понять.. Хоть на case это делай...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sigmaN
сообщение Feb 28 2011, 02:36
Сообщение #2


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Ну для начала не
Цитата
unsigned int __eeprom *bdz[]={*m3,*m4,*m7};

а
Код
unsigned int __eeprom *bdz[]={&m3,&m4,&m7};


И кажется там без определения типа не обойтись ибо при обращении
Код
temp=*(bdz[2]{[3][0]});
(кстати, надо без фигурных скобочек и этой звёздочки) компилятор не будет знать, что в строке у нас 10 элементов, а в каждом массиве по три строки. Т.е. не сможет преобразовать координаты элемента в массиве ([3][0]) в реальный адрес.


upd: а может Палыч дело говорит и оно вообще вам не надо?


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post



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

 


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


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