Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > FAQ и уроки

Ответ
 
Опции темы
Старый 11.09.2010, 13:48   #1
JeanWinters
Знающий
 
Регистрация: 22.12.2007
Сообщений: 223
Написано 22 полезных сообщений
(для 51 пользователей)
декларация двумерного массива

Скажите, как можно создать двумерный массив и в декларации сразу назначить ему данные?
делаю так:
test%[][] = [[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7,8]]
То есть мне нужно назначить ему значения, но необязательно чтобы он был динамическим.

Когда делают такую проверку, то компилятор выводит сообщение о неправильном размере массива:
If (test[ai+1, aj] = aid) And (test[ai+2, aj] = aid) Then

Разве массивы test%[8][8] и test%[8,8] различны?

заменил на:
If (test[ai+1] [aj] = aid) And (test[ai+2] [aj] = aid) Then
но теперь выдает опять сообщение вот на эту строку:
item_.id = map.test% [i][j]

также как и на эту:
item_.id = map.test% [i, j]

В чем тут дело??
(Offline)
 
Ответить с цитированием
Старый 11.09.2010, 14:47   #2
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: декларация двумерного массива

Ты объявляешь не двухмерный массив, а массив массивов, но прочитать пытаешься двухмерный. Это раз. Два, у тебя не test[8][8], а test[2][8]. Индексы начинаются с нуля и даже предположив, что ai = 0, индекс ai + 2 в твоём массиве не существует - выходит за границы размера.
(Offline)
 
Ответить с цитированием
Старый 11.09.2010, 14:53   #3
JeanWinters
Знающий
 
Регистрация: 22.12.2007
Сообщений: 223
Написано 22 полезных сообщений
(для 51 пользователей)
Ответ: декларация двумерного массива

вот прочитал:



Можно создавать многомерные массивы.
В примере создаем массив 3 x 3 с определением всех его элементов:
My_map%[][] = [ [1,1,1],[1,1,2],[2,3,4] ]

не понимаю, почему это у меня test[8][8] не двумерный массив?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
teremochek (20.04.2011)
Старый 11.09.2010, 19:39   #4
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: декларация двумерного массива

Сообщение от DTamaturg Посмотреть сообщение
не понимаю, почему это у меня test[8][8] не двумерный массив?
[/font]
test[8][8] (которого у тебя в примере нету, но есть test[2][8]!!) - массив из 8ми элементов, каждый из которых хранит УКАЗАТЕЛЬ (ссылку в данном контексте) на массив из 8ми элементов. Получается у тебя 8 одномерных массивов каждый по 8 элементов.
При объявлении test[8, 8] получаем массив из 64ёх элементов. То же самое можно получить если объявить одномерный массив test[64]
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
teremochek (20.04.2011)
Старый 21.03.2012, 04:51   #5
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: декларация двумерного массива

Сообщение от cyberblut Посмотреть сообщение
test[8][8] (которого у тебя в примере нету, но есть test[2][8]!!) - массив из 8ми элементов, каждый из которых хранит УКАЗАТЕЛЬ (ссылку в данном контексте) на массив из 8ми элементов. Получается у тебя 8 одномерных массивов каждый по 8 элементов.
При объявлении test[8, 8] получаем массив из 64ёх элементов. То же самое можно получить если объявить одномерный массив test[64]
acess_denied/.

Последний раз редактировалось pepel, 21.03.2012 в 18:23.
(Offline)
 
Ответить с цитированием
Старый 21.03.2012, 10:30   #6
cyberblut
Знающий
 
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений
(для 257 пользователей)
Ответ: декларация двумерного массива

Сообщение от pepel Посмотреть сообщение
8x8=48
Я даже не нашёлся как откомментить
FAIL? Или болван?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо cyberblut за это полезное сообщение:
Антихрист (21.03.2012), SBJoker (21.03.2012)
Старый 21.03.2012, 15:44   #7
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: декларация двумерного массива

Сообщение от pepel Посмотреть сообщение
8x8=48
пруфлинк?

массив задаешь так: test%[][]
а обращаешься к его элементам так: test[ai+1, aj]

насколько я в курсе, двумерный объявляется так: test[,] соответственно так же к нему и обращаться
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:20.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com