Beim Versuch, eine Referenz auf ein zweidimensionales Array an eine Funktion in zu übergeben C können Benutzer auf den Fehler „erwartet ‚,‘ oder ‚...‘ vor dem ‚*‘-Token“ von g stoßen. Es stellt sich die Frage: Was bedeutet dieser Fehler und wie kann er behoben werden?
Der Fehler weist darauf hin, dass der Funktionsprototyp für do_something() falsch ist. Um zur Kompilierungszeit einen Verweis auf ein zweidimensionales Array mit bekannten Abmessungen zu übergeben, sollte die folgende Syntax verwendet werden:
<code class="cpp">void do_something(int (&array)[board_width][board_height]);</code>
Deklarieren des Parameters als int array[board_width][board_height]; würde stattdessen einen Zeiger auf das erste Unterarray des Arrays übergeben, was in diesem Fall nicht die gewünschte Funktionalität ist.
Die Referenzsyntax &array stellt sicher, dass das eigentliche Array übergeben wird Referenz, sodass die Funktion den Inhalt des Arrays direkt ändern kann. Die Notation int (&array)[board_width][board_height] gibt an, dass der Parameter array eine Referenz auf ein zweidimensionales Array mit den Abmessungen board_width und board_height ist.
Im Gegensatz dazu ist int array[board_width][board_height] ; deklariert das Parameter-Array als Zeiger auf ein eindimensionales Array von board_height-Ganzzahlen und ignoriert dabei die zweite Dimension des Arrays. Dies führt zu dem gemeldeten Fehler, da die Syntax falsch ist.
Das obige ist der detaillierte Inhalt vonWarum wirft C beim Übergeben eines zweidimensionalen Arrays als Referenz „erwartetes ‚,' oder ‚…' vor dem ‚*'-Token'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!