|
Массивы, Поиск нужного массива |
|
|
|
Dec 1 2005, 08:09
|

Местный
  
Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517

|
Есть 200 массивов (может больше) с разными именами. Есть переменные вне массивов... Как в зависимости от значения переменной переходить к считыванию соответствующего массива. Пишу на СИ в CVAVR (недавно разобрался, может что то и не уловил), пользоваться "if.............." нет желания, этож 200 штук Что посоветуйте???Как это зделать??? Чтоб красиво было
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Dec 1 2005, 09:03
|

Местный
  
Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517

|
Цитата(Георгий @ Dec 1 2005, 11:46)  Может проще создать двухмерный массив и внешнюю переменную присваивать первому индексу массива. Что то вообще не понял как это?  Зачем двухмерный то, переменная ведь одна Цитата(IgorKossak @ Dec 1 2005, 11:21)  Создайте во __flash массив адресов массивов (в Вашем случае 400 байт) и индексом этого массива как раз и будет значение переменной. Цитата(yung @ Dec 1 2005, 11:21)  Создать 201-й массив с указателями на предыдующие 200. Понял что написано одно и то ж и массив с указателями вроде разобрался, как зделать. СПАСИБО!!! Может ещё какие предложения будут
|
|
|
|
|
Dec 1 2005, 09:17
|

Местный
  
Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517

|
Цитата(BVU @ Dec 1 2005, 11:52)  Конструкция двумерного массива 'отожрет' в два раза больше памяти. Лучше уж массив адресных указателей. И попробуйте воспользоваться конструкцией enum. С символическим содержанием работать всегда приятнее...  глянул в умную книгу............... Ага, так вроде лучше и проще получается СПАСИБО!!!
|
|
|
|
|
Dec 1 2005, 09:40
|
Местный
  
Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957

|
Цитата Конструкция двумерного массива 'отожрет' в два раза больше памяти. Лучше уж массив адресных указателей. Не понял, почему? Чем один массив из 4 элементов отличается от двух массивов по два элемента.(для примера)
--------------------
Обычно последним смеется тот, кто хуже соображает!
|
|
|
|
|
Dec 1 2005, 09:50
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
Для Serg-а схематично Код // 1 вариант - переменная-индекс в массиве указателей p[] int a1[], a2[], a3[], ......, a200[]; int *p[200]={a1,a2,a3,..., a200};
// 2 вариант - переменная-индекс N в массиве a[] int a[N][200]; Первый вариант экономнее при выделении памяти (но не факт что Ваш алгоритм требует именно его).
|
|
|
|
|
Dec 1 2005, 10:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(Георгий @ Dec 1 2005, 12:40)  Цитата Конструкция двумерного массива 'отожрет' в два раза больше памяти. Лучше уж массив адресных указателей. Не понял, почему? Чем один массив из 4 элементов отличается от двух массивов по два элемента.(для примера) А потому что изначально определя тип массива двумерный будет в сравнении с одномерным в два раза больше.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Dec 1 2005, 11:16
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата(Георгий @ Dec 1 2005, 13:37)  Так двумерный массив один, а одномерных надо два! Или я что то не догоняю? --------------------- !0! . . . . . . . !200! - это одномерный масиив Array[200] --------------------- --------------------- !0! . . . . . . . !200! - а это двумерный массив Array[2][200] --------------------- !0! . . . . . . . !200! --------------------- Вот поэтому он в два раза и больше одномерного. Соответственно, трехмерный будет в три раза больше одномерного. А вот одномерный Array[400] займет столько же, сколько Array[2][200]
|
|
|
|
|
Dec 1 2005, 11:25
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(Георгий @ Dec 1 2005, 13:37)  Так двумерный массив один, а одномерных надо два! Или я что то не догоняю? Все правильно, догоняете, это я немножко 'запарил'... (думаешь одно, пишешь - другое)  . Ну да ладно, проехали. Все дело в удобстве использования массивов при работе с ними. Если массив двумерных необходима в алгоритме двумерная индексация, а если пользоваться адресными указателями на массив код становиться проще.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Dec 1 2005, 11:45
|

Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544

|
Цитата(BVU @ Dec 1 2005, 14:25)  Цитата(Георгий @ Dec 1 2005, 13:37)  Так двумерный массив один, а одномерных надо два! Или я что то не догоняю?
Все правильно, догоняете, это я немножко 'запарил'... (думаешь одно, пишешь - другое)  . Ну да ладно, проехали. Все дело в удобстве использования массивов при работе с ними. Если массив двумерных необходима в алгоритме двумерная индексация, а если пользоваться адресными указателями на массив код становиться проще. Еще проще представить двумерный массив в виде шахматной доски. Нужная клетка на доске однозначно "адресуется" буквой и цифрой. (пешка с Е2 на Е4  )
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|