しばらくの間インターネットを見てきましたが、それを機能させるための明確な答えが得られないようです。コンソールを使用して C++ で簡単な倉庫番ゲームを作成しています。
まず第一に、配列が大きな配列である場合、メモリ集約度が高いため、配列を関数に渡すことはお勧めできません。私は最大約 32x41 しか持っておらず、最大値に到達するつもりもないので、それは問題ではありません。では、配列全体を渡す必要がありますか、それともポインターを渡す必要がありますか?
第二に、私の配列サイズは常に同じではありません。これが重要な要素であるかどうかはわかりません。
第三に、ポインターを渡す場合、ポインターを操作する前に作成/初期化する方法を教えてください。私の配列は次の方法で作成されました:
string line;
string arr[30];
int i = 0;
char mazeArr[30][40];
int k, count;
if (mazeStream.is_open())
{
while ( mazeStream.good() && !mazeStream.eof() )
{
getline (mazeStream,line);
cout << line << endl;
arr[i] = line;
i++;
}
mazeStream.close();
cout << endl;
}
else cout << "Unable to open file";
for ( count = 0; count < 12; count ++)
{
string::const_iterator iterator1 = arr[count].begin();
k = 0;
while (iterator1 != arr[count].end())
{
mazeArr[count][k] = *iterator1;
iterator1++;
k++;
}
}
この2D配列でやりたいことは次のとおりです。
- 配列内のシンボルに応じて、一度に 1 つの要素を取り、クラスのインスタンスを作成します
- インスタンスをその型をとる別の配列に配置します
したがって、最終的にインスタンスの 2 番目の配列が作成されます。各インスタンスは、最初の配列から取得したシンボルに依存します。同じ「座標」を保持しながら
どんな助けでも大歓迎です、
ありがとう