12 Stimmen

Übergabe eines Arrays mit unbekannter Größe an eine Funktion

Angenommen, ich habe eine Funktion namens MyFunction(int myArray[][]), die Array-Manipulationen durchführt.

Wenn ich die Parameterliste so schreibe, wird der Compiler beschweren, dass er die Größe des Arrays zur Kompilierzeit kennen muss. Gibt es eine Möglichkeit, die Parameterliste umzuschreiben, sodass ich ein Array beliebiger Größe an die Funktion übergeben kann?

Die Größe meines Arrays wird durch zwei static const ints in einer Klasse definiert, aber der Compiler akzeptiert etwas wie MyFunction(int myArray[Board::ROWS][Board::COLS]) nicht.

Was ist, wenn ich das Array in einen Vektor konvertieren könnte und dann den Vektor an MyFunction übergebe? Gibt es eine Einzeilige Konvertierung, die ich verwenden kann, oder muss ich die Konvertierung manuell durchführen?

0voto

src Punkte 531

Geben Sie einen Zeiger weiter und führen Sie die Indizierung selbst durch oder verwenden Sie stattdessen eine Matrixklasse.

-1voto

Puppy Punkte 141483

In C ++ ist die Verwendung der integrierten Array-Typen ein sofortiges Versagen. Sie könnten ein boost::/std:: Array von Arrays oder Vektor von Arrays verwenden. Primitive Arrays sind für jede Art von echter Verwendung nicht geeignet

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X