Помогите разобраться с двух мерными массивами
- Войдите на сайт для отправки комментариев
Чт, 06/02/2014 - 07:17
Собственно вот упрощенный скетч, не могу разобраться почему ошибка.
Идея собственно проста. Есть класс, объекту которого надо передать для работы таблицу символов, в данном случае это 6 строк по 5 элементов в каждой, в классе толькоуказатель на эту таблицу. В примере просто печать этой таблицы.
Как сам понимаю компилятору должно быть все равно сколько строк, главное что бы он знал сколько элементов в строке, что бы правильно трактовать элемент table[x][y] (строка х, элемнт в это строке у). Ан нет, ругается зараза.....
class MyLCD { byte *_table[5]; byte _x, _y; public: MyLCD(int x=84, int y=46 ) { _x=x; _y=y; } void setTable( byte *t[5] ) { _table = t; } void printTable( void ) { for( int i=0; i<6; i++ ) for( int j=0; j<5; j++ ) Serial.println( _table[i][j] ); } }; byte table[6][5] = { { 0x00, 0x01, 0x02, 0x03, 0x04 }, { 0x10, 0x11, 0x12, 0x13, 0x14 }, { 0x20, 0x21, 0x22, 0x23, 0x24 }, { 0x30, 0x31, 0x32, 0x33, 0x34 }, { 0x40, 0x41, 0x42, 0x43, 0x44 }, { 0x50, 0x51, 0x52, 0x53, 0x54 }, }; // MyLCD cl(24,36); void setup() { // put your setup code here, to run once: Serial.begin(9600); cl.setTable( table ); cl.printTable(); } // end setup void loop() { // put your main code here, to run repeatedly: } // end loop()
И собственно вот так ругается...
sketch_feb06b.ino: In member function 'void MyLCD::setTable(byte**)': sketch_feb06b:7: error: incompatible types in assignment of 'byte**' to 'byte* [5]' sketch_feb06b.ino: In function 'void setup()': sketch_feb06b:35: error: no matching function for call to 'MyLCD::setTable(byte [6][5])' sketch_feb06b.ino:7: note: candidates are: void MyLCD::setTable(byte**)
Собственно вот упрощенный скетч, не могу разобраться почему ошибка.
Идея собственно проста. Есть класс, объекту которого надо передать для работы таблицу символов, в данном случае это 6 строк по 5 элементов в каждой, в классе толькоуказатель на эту таблицу. В примере просто печать этой таблицы.
Как сам понимаю компилятору должно быть все равно сколько строк, главное что бы он знал сколько элементов в строке, что бы правильно трактовать элемент table[x][y] (строка х, элемнт в это строке у). Ан нет, ругается зараза.....
Спасибо!
Здравствуйте
Подскажите, пожалуйста, не один час уже голову ломаю. Не могу найти максимальный элемент в двумерном массиве.
Суть такова:
При различных параметрах t 10 раз вызывается процедура udar, совершающая определенные действия. Результаты ее выполнения сохраняются в массив test (первые 20 значений). Далее я ищу максимальный элемент в каждой из 10 строк (т.е. максимальный элемент в каждом эксперименте) и сохраняю его в одномерный массив maxArr. Вот где-то тут ошибка-что-то ему не нравится. Все эти операции происходят по условию, но даже при выполнении условия, описанные мною действия не выполняются (что-то не так в поиске максимума, видимо)
Если не совсем понятно объяснил, то, возможно, с полным скетчем будет понятнее. Если закомментить поиск максимума в двумерном массиве-то хотя бы заходит в условие if(strSMS == "2"), иначе оно просто игнорируется. На смски потратил уже рублей 100, а толку нет. Подскажите, пожалуйста, что не так