Массивы

Тема в разделе "Arduino & Shields", создана пользователем L_off, 2 фев 2013.

  1. L_off

    L_off Нерд

    как создать трехмерный массив?
     
  2. Unixon

    Unixon Оракул Модератор

    Есть два основных способа:
    1) если для адресации используется оператор [] - нужно создать в цикле создать несколько массивов: массив указателей на -> массив указателей на -> массив объектов (чисел, символов, ...)
    2) создать одномерный массив размером Nx*Ny*Nz и функцию типа
    int index3d(int i, int j, int k) { return (k*Nz+j)*Ny+i; }
     
  3. L_off

    L_off Нерд

    спасибо
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    И еще "нулевой" основной способ:

    Код (Text):
    int array[2][3][4];
    void setup()
    {
    }
     
    void loop()
    {
      for(int i = 0; i < 2; i++)
        for(int j = 0; j < 3; j++)
          for(int k = 0; k < 4; k++)
            array[i][j][k] = 0;
    }
     
  5. Unixon

    Unixon Оракул Модератор

    То же самое, что и #1, только со статическим массивом.
     
  6. Megakoteyka

    Megakoteyka Оракул Модератор

    Угу, а в конце концов любая конструкция развернется в №2, ибо память одномерна))
     
  7. Unixon

    Unixon Оракул Модератор

    ЧТД
     
  8. roggedhorse

    roggedhorse Гик

    есть еще третий вариант
     
  9. Megakoteyka

    Megakoteyka Оракул Модератор

    Сказали "А" - говорите "Б" :)
     
  10. roggedhorse

    roggedhorse Гик

    третий вариант - динамический массив.
    Он сродни второму варианту, но массив создается только на то время, пока он нужен
    Если интересно узнать больше, могу дать код
     
  11. Megakoteyka

    Megakoteyka Оракул Модератор

    Динамический массив был в №1: