2014-09-30 2 views
0

Существует действительно хорошее объяснение многомерного массива here на stackoverflow, который я изучил и исследовал, но у меня мало вопросов для всех, кто хочет помочь вне. Это не вопрос HW, это из моего учебника, который я пытаюсь понять больше , поэтому, пожалуйста, подтвердите, правильно ли я смотрю на приведенный ниже пример. Заранее спасибо.Понимание преобразования многомерного массива в одномерный массив

Так что, если я имел 3 одномерный массив, такие как это:

    {{{'1','2'},{'3','4'}}, 
        {{'5','6'},{'7','8'}}, 
        {{'9','10'},{'11','12'}}}; 

Would the one dimensional outcome (using c compiler) simply be?: +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | | | | | | | | | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ And the corresponding position as? +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | | | | | | | | | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Опять я использую this ссылку как мой источник. Единственное, что я ищу, как форму ответа, - Я смотрю/делаю это правильно? Если нет, я был бы признателен, если бы вы могли сказать мне, где я совершил какие-либо ошибки. Еще раз спасибо.

+0

Есть вопросы для меня? –

+0

Любая обратная связь? .. –

+0

Да, ваше понимание кажется правильным. Вы можете проверить, пройдя массив с помощью символа 'char *', одновременно печатая один элемент. – juanchopanza

ответ

1

1.

char [3][2][2] : 

+-----+-----+   +-----+-----+ 
|+-----+-----+  |+-----+-----+ 
|| 1 | 3 |  || 4 | 5 | 
||1,0+-----+-----+ || +-----+-----+ 
|+---| a | b | |+---| 0 | 1 | 
|| 2|0,0,0|0,0,1| || 6|  |  | 
+|1,1+-----+-----+ => +| +-----+-----+ 
+---| x | y |  +---| 2 | 3 | 
    |0,1,0|0,1,1|   |  |  | 
    +-----+-----+   +-----+-----+ 

поэтому ваш результат кажется нормально, и, таким образом, (2) t3 [0] должно быть.

2.

если t2 выглядит следующим образом, t2 [0] [1] является Ъ:

+-----+-----+-----+-----+  +-----+-----+-----+-----+ 
| a | b | x | y |  |  |  |  |  | 
|0,0,0|0,0,1|0,1,0|0,1,1|  | 0,0 | 0,1 | 0,2 | 0,3 | 
+-----+-----+-----+-----+  +-----+-----+-----+-----+ 
| 1 | 3 | 2 | 7 | => |  |  |  |  | 
|1,0,0|1,0,1|1,1,0|1,1,1|  | 1,0 | 1,1 | 1,2 | 1,3 | 
+-----+-----+-----+-----+  +-----+-----+-----+-----+ 
| q | g | r | 4 |  |  |  |  |  | 
|2,0,0|2,0,1|2,1,0|2,1,1|  | 2,0 | 2,1 | 2,2 | 2,3 | 
+-----+-----+-----+-----+  +-----+-----+-----+-----+ 

Как долго вы конвертируете их правильный путь (как это кажется по ссылке), он должен работать ...

0

Для концептуального понимания это хорошая отправная точка.

Но вы должны понимать разницу между рядом с колонкой майора. И технически это может варьироваться между компиляторами и языками в зависимости от того, для чего они предназначены.

http://en.wikipedia.org/wiki/Row-major_order

Смежные вопросы