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

 
 
> Многомерные массивы в CodeVision
zheka
сообщение Jan 5 2011, 12:23
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Господа!
Работаю с CodeVision 2.0
Мне нужен многомерный массив. Пытаюсь начать с двумерного. Какова его размерность будет в итоге - фиг его знает,пересчитывать элементы каждый раз я конечно могу, но свербит то что в одномерном массиве без указания размерности вот так можно:

Код
unsigned char  UpMenuImages[] = {11,12,19};


А в двумерном нельзя, выдает ошибку Error: "D:\Ýëåêòðîíèêà\CodeVisoin_Projects\TFT\TFT.c(59): an array can't have elements of this type"

Код
unsigned char  multidim_array[][]={{1,2,3},{4,5,6}};


Есть ли возможность не указывать размерность массива или надо смириться?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zheka
сообщение Jan 5 2011, 16:12
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Хех... пока ждал ответа, все-таки пришел к первому варианту. Все же массив проще перебирать.
В процессе написания функции определения не находится ли точка нажатия в заданных координатах столкнулся со странной проблемой?

Вот так работает:
Код
   if  ( (sX>MAP_COORDS[m][n][0]) && (sY>MAP_COORDS[m][n][1]) )  
            {
             if ((sX<MAP_COORDS[m][n][2]) && (sY<MAP_COORDS[m][n][3]))
              {
               beep();
               return MAP_COORDS[m][n][4];
              }
            }


А вот так

Код
( ( (sX>MAP_COORDS[m][n][0]) && (sY>MAP_COORDS[m][n][1]) ) &&  ( (sX<MAP_COORDS[m][n][2]) && (sY<MAP_COORDS[m][n][3]) )   )


Не рабоатет... возвращает FALSE, даже если условие истинно...

Повторюсь - у меня CodeVision
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 5 2011, 16:48
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Попробуйте форматировать исходный текст сложных условий таким образом:
Код
     if    ((sX>MAP_COORDS[m][n][0])
         && (sY>MAP_COORDS[m][n][1])
         && (sX<MAP_COORDS[m][n][2])
         && (sY<MAP_COORDS[m][n][3]))
     {
         ...
     }

И жизнь будет немного проще:-)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:19
Рейтинг@Mail.ru


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