2

割り当て用の小さなゲームを作成していますが、マップを使用する必要があります。マップを 2 次元配列に入れることに成功しましたが、別の関数で配列 Map[][] にアクセスする必要があることがわかりました。 . 私はそれを機能させようとしましたが、失敗しました。g++ で発生するエラーは「エラー: 'Map' はタイプではありません」です。

検索しましたが、検索エンジンの使い方が下手であるか、このエラーに固有のものを見つけることができませんでした。

const int MapSZ = 10; //In Global
int Map[MapSZ][MapSZ]; // Also Global

void GetMap(ifstream&, int); //Getting the map (Proto)

GetMap(fin, Map[MapSZ][MapSZ]); //In the main function.

void GetMap(ifstream& fin, Map[MapSZ][MapSZ]) //Inserting the map into an array
4

2 に答える 2

3
void GetMap(ifstream& fin, Map[MapSZ][MapSZ]) 

次のようにする必要があります。

void GetMap(ifstream& fin, int Map[MapSZ][MapSZ]) 
                           ^^^^

Mapこれは配列の名前ですが、そのtypeについて言及していないことに注意してください。

于 2012-05-23T06:56:37.417 に答える
1

Map[MapSZ][MapSZ]コメントが示すように、がグローバルとして定義されている場合(つまり、メイン関数内で定義されているがmain.cppメイン関数の外部で定義されている場合)、パラメーターとしてに渡す必要はありませんGetMap。あなたは単に次のようなことをすることができます

void GetMap(ifstream& fin); //proto

int main(int argc, const char * argv[]) {
    GetMap(fin);
}

void GetMap(ifstream& fin) {
    //some code that uses Map[MapSZ][MapSZ]
}
于 2012-05-23T08:33:36.003 に答える