![](images/chestnut/misc/left.gif) |
11.09.2010, 13:48
|
#1
|
Знающий
Регистрация: 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
|
Знающий
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений (для 257 пользователей)
|
Ответ: декларация двумерного массива
Ты объявляешь не двухмерный массив, а массив массивов, но прочитать пытаешься двухмерный. Это раз. Два, у тебя не test[8][8], а test[2][8]. Индексы начинаются с нуля и даже предположив, что ai = 0, индекс ai + 2 в твоём массиве не существует - выходит за границы размера.
|
(Offline)
|
|
11.09.2010, 14:53
|
#3
|
Знающий
Регистрация: 22.12.2007
Сообщений: 223
Написано 22 полезных сообщений (для 51 пользователей)
|
Ответ: декларация двумерного массива
вот прочитал:
Можно создавать многомерные массивы.
В примере создаем массив 3 x 3 с определением всех его элементов:
My_map%[][] = [ [1,1,1],[1,1,2],[2,3,4] ]
не понимаю, почему это у меня test[8][8] не двумерный массив?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.09.2010, 19:39
|
#4
|
Знающий
Регистрация: 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)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.03.2012, 04:51
|
#5
|
Мастер
Регистрация: 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
|
Знающий
Регистрация: 14.06.2009
Сообщений: 338
Написано 139 полезных сообщений (для 257 пользователей)
|
Ответ: декларация двумерного массива
Сообщение от pepel
8x8=48
|
Я даже не нашёлся как откомментить ![:)](images/smilies/smile.gif)
FAIL? Или болван?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо cyberblut за это полезное сообщение:
|
|
21.03.2012, 15:44
|
#7
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: декларация двумерного массива
Сообщение от pepel
8x8=48
|
пруфлинк?
массив задаешь так: test%[][]
а обращаешься к его элементам так: test[ai+1, aj]
насколько я в курсе, двумерный объявляется так: test[,] соответственно так же к нему и обращаться
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:16.
|