Ich lerne gerade C, und ich habe gerade einen Entwurf eines Programms geschrieben, das es einem Benutzer erlaubt, einen Spieler in einem zeichenbasierten Labyrinth/Pfad zu bewegen. Ich habe den Labyrinth/Pfad als multidimensionales Zeichen-Array gebaut, mit einer while-Schleife, die die Position des Spielers durch Ersetzen bestimmter Zeichen im Array kontrolliert. Hier ist die mehrdimensionale Array I initialisiert haben:C Multidimensionales Array: Fehle ich etwas?
char maze[5][7] = {
{"_", "_", "_", "_", "_"},
{"|", " ", " ", " ", "|"},
{"|", " ", "|", " ", "|"},
{"|", " ", "|", "_", "|"},
{"|", "_", " ", " ", "|"},
{"|", " ", "|", " ", "|"},
{"|", "_", "_", "_", "|"}
};
Allerdings, wenn ich zu kompilieren versuchen, ich diesen Fehler:
error: '}' expected
Die erste Reihe in dem Array ist offenbar eine Art von Schließbügel fehlt , obwohl ich die richtige Array-Syntax mehrmals überprüft habe und dies scheint korrekt zu sein. Was vermisse ich? Gibt es andere Probleme damit?
"|" ist ein Zeichenfolgenliteral, das über Zeichenarraytyp verfügt. '|' ist ein Zeichenliteral, das char enthält. Sie müssen Zeichenliterale verwenden, um Ihr Array anstelle von Stringliteralen zu initialisieren. Und das Array sollte wie char labyrinth [7] [5] deklariert werden, dh es hat 7 "Zeilen" mit 5 " Spalten " –
Zuerst haben Sie die Dimensionen falsch. Dann haben Sie ein Array von Arrays von * Zeichen * nicht Strings. Schließlich hat C nicht" mehrdimensionale Arrays ", es gibt nur Arrays von Arrays (von Arrays. .. –
C Arrays sind ** Zeile Major **. Also ist Ihr Initialisierer von der falschen Größe, sowie Art. – StoryTeller