forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   FAQ и уроки (http://forum.boolean.name/forumdisplay.php?f=110)
-   -   декларация двумерного массива (http://forum.boolean.name/showthread.php?t=13320)

JeanWinters 11.09.2010 13:48

декларация двумерного массива
 
Скажите, как можно создать двумерный массив и в декларации сразу назначить ему данные?
делаю так:
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]

В чем тут дело??

cyberblut 11.09.2010 14:47

Ответ: декларация двумерного массива
 
Ты объявляешь не двухмерный массив, а массив массивов, но прочитать пытаешься двухмерный. Это раз. Два, у тебя не test[8][8], а test[2][8]. Индексы начинаются с нуля и даже предположив, что ai = 0, индекс ai + 2 в твоём массиве не существует - выходит за границы размера.

JeanWinters 11.09.2010 14:53

Ответ: декларация двумерного массива
 
вот прочитал:



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

не понимаю, почему это у меня test[8][8] не двумерный массив?

cyberblut 11.09.2010 19:39

Ответ: декларация двумерного массива
 
Цитата:

Сообщение от DTamaturg (Сообщение 161646)
не понимаю, почему это у меня test[8][8] не двумерный массив?
[/font]

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

pepel 21.03.2012 04:51

Ответ: декларация двумерного массива
 
Цитата:

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

acess_denied/.

cyberblut 21.03.2012 10:30

Ответ: декларация двумерного массива
 
Цитата:

Сообщение от pepel (Сообщение 223274)
8x8=48

Я даже не нашёлся как откомментить :)
FAIL? Или болван?

dimanche13 21.03.2012 15:44

Ответ: декларация двумерного массива
 
Цитата:

Сообщение от pepel (Сообщение 223274)
8x8=48

пруфлинк?

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

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


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot