Compile-error - Invalid types 'char[int]' for array subscript
Ich arbeite an einem Programm, das einige matrix-math. Glücklicherweise ist die code-Logik ist nicht das, was ist, dass Sie mir die Fehler.
Ich bin mit dem folgenden code für die Ausgabe einer matrix, gespeichert in einem 2-d array:
void ouputMatrix(char arr[], int matrixRows, int matrixColumns) {
for (int a=0; a<matrixRows; a++) {
for (int i=0; i<matrixColumns; i++) {
cout << arr[a][i] << " ";
}
cout << endl;
}
cout << endl;
}
Jedoch, wenn ich versuche, um diesen code zu kompilieren, habe ich mir gesagt:
"In Funktion" void outputMatrix(char*, int, int)':
[Error] Invalid types 'char[int]' for array subscript.
Die Art des Fehlers lässt mich vermuten, dass mir etwas fehlt ist offensichtlich mit Bezug auf c++ - array-syntax oder etwas ähnliches, aber ich kann nicht es herausfinden. Was mache ich falsch?
arr[a]
ist einchar
. Man kann nicht[i]
auf einechar
. Ich denke, Sie übergeben soll ein 2-D array stattchar arr[]
- Ahh, das ist wahrscheinlich mein Problem. Ich werde nach einer Antwort auf diese, sobald ich herausfinden, die richtige syntax.
- Es würde helfen, wenn du posten, wo Sie definieren und initialisieren der matrix
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie versuchen würde, zu übergeben, eine 1-D-array-Funktion wie diese dann die perfekte, was Sie Tat, aber in den Fall, Sie versuchen, pass 2-D array, dann u müssen, übergeben Sie den array mit gültigen syntax, die nicht nur wie die 1-D
d.h.
return_type function_name(dataType arrayName[100],int size)
Fall, lassen sich auch die Indizes '[]' als Rohling für 1-D-array NUR,
aber für 2-D-array wäre es
return_type function_name(dataType arrayName[100][100],int rowSize,int colSize)
aber Sie können auch lassen Sie die Indizes '[]' leer sein, auch hier aber nur die 1. [] und 2. muss enthalten einen Wert in es.
eigentlich ist es egal, welchen Wert Sie übergeben in der 2. tiefgestellte Zeichen, aber einige Wert sollte vorhanden sein, nur einen Wert übergeben, zu dem Sie Ihre 2-D-array nicht überschreiten würde.
Und die syntax halten werde, wie dies für die weitere Dimensionen des Arrays.
Hoffe, das wird für Sie arbeiten.
Das Problem war, dass ich versuchte, mich zu übergeben, ein mehrdimensionales array in der Funktion aber verwendet die gleiche syntax wie ich wäre für ein 1-d array. Da das array hat eine Größe von 100 (das ist nicht etwas, das man wissen konnte, basiert auf meine Frage, sorry...) der richtige Weg, um pass ist es: