C Массив инициализатора с разными размерами? - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь создать многомерный массив, который содержит много данных.

Однако я не знаю размера инициализатора среднего массива, поскольку он всегда различен для каждого уровня массива.

Это выглядит так:

 char* spawnableVehicles[3][][3] = {
      {
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
      },
      {
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
      },
      {
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
      },
 }

Как мне инициализировать размер среднего массива?

1 Ответ

0 голосов
/ 06 января 2019

Вам необходимо четко определить все показатели. Определение как spawnableVehicles [3] [] [3] приводит к ошибке, в то время как при определении spawnableVehicles [30] [30] [30] ошибка исчезла. Я также написал код, чтобы проверить это:

#include<iostream>
using namespace std;
int main(){
    char* spawnableVehicles[30][30][30] = {
      {
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
      },
      {
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
      },
      {
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
           {"test1", "test2", "test3"},
      },
 };
 for (int i=0;i<30;i++){
    for (int j=0;j<30;j++){
        for (int k=0;k<30;k++){
            if (spawnableVehicles[i][j][k]!=NULL){
                // printing spawnableVehicles[i][j][k] when it has a value other than NULL
                cout<<i<<"   "<<j<<"   "<<k<<"   "<<spawnableVehicles[i][j][k]<<"\n";
            }
        }
    }
 }
 return 0;
}

со следующим результатом:

0   0   0   test1
0   0   1   test2
0   0   2   test3
0   1   0   test1
0   1   1   test2
0   1   2   test3
0   2   0   test1
0   2   1   test2
0   2   2   test3
0   3   0   test1
0   3   1   test2
0   3   2   test3
0   4   0   test1
0   4   1   test2
0   4   2   test3
1   0   0   test1
1   0   1   test2
1   0   2   test3
1   1   0   test1
1   1   1   test2
1   1   2   test3
1   2   0   test1
1   2   1   test2
1   2   2   test3
2   0   0   test1
2   0   1   test2
2   0   2   test3
2   1   0   test1
2   1   1   test2
2   1   2   test3
2   2   0   test1
2   2   1   test2
2   2   2   test3
2   3   0   test1
2   3   1   test2
2   3   2   test3
2   4   0   test1
2   4   1   test2
2   4   2   test3
2   5   0   test1
2   5   1   test2
2   5   2   test3
2   6   0   test1
2   6   1   test2
2   6   2   test3
2   7   0   test1
2   7   1   test2
2   7   2   test3

--------------------------------
Process exited after 0.08576 seconds with return value 0
Press any key to continue . . .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...