[英]C Array Initializer With Different Sizes?
我正在嘗試制作一個包含大量數據的多維數組。
但是,我不知道中間數組的初始化程序大小,因為每個數組級別的初始化程序大小總是不同的。
看起來像這樣:
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"},
},
}
如何初始化中間數組的大小?
您需要清楚地標識所有索引。 當我定義spawnableVehicles [30] [30] [30]時,定義為spawnableVehicles [3] [] [3]會產生錯誤。 我還寫了一個代碼來檢查一下:
#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 . . .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.