Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen,

bin gerade am programmieren und versuche zwei Vektoren (1 eindimensionaler, ein zweidimensionaler) aus der Hauptfunktion in eine Unterfunktion zu übergeben. Aber so wie ich meine das es richtig ist haut es nicht hin, denn ich bekomm immer wieder Fehlermeldungen vom Compiler.

Das ganze sieht dann folgendermaßen aus:

int suche(char cmp_matrix[], char suchwort[5][20])

{ usw.

.

.

.

in main dann:

suche(cmp_matrix, suchwort);

kann mir jemand sagen wo der Fehler ist?

Gruß

Turtleman

Merci beaucoup.

Quote:

Die definition deiner Funktion muß so aussehen:

suche(char* eindimensional,char** zweidimensional);

Ich glaub da liegst du falsch.

suche(char* eindimensional,char* zweidimensional) müsste stimmen.

Denn ein char[][] - Feld ist kein Array von Strings, sondern eins von chars.

Genauso wie das eindimensionale Array.

Die Zweidimensionalität bestimmt lediglich die Reienfolge in der die Chars im Speicher liegen.

Ein char** ist ein Zeiger, der auf einen Zeiger zeigt.

Man kann also ein Char** als eine Schreibweise für ein Feld betrachten, dessen einzelne Elemente Zeiger sind.

Im Gegensatz dazu enthält ein Char[][] keine Zeiger! - Sondern nur einzelne Char.

Es wird also auch nichts anderes übrigbleiben, als ein char* in der Funktion zu übergeben.

Ist eigentlich auch klar, da "char suchwort[5][20]" kein Pointer ist sondern ein Feld fester Groesse (und sowas kann man in C nun mal nicht an Funktionen uebergeben). Du kannst Dir aber einen Pointer auf "char suchwort[5][20]" bauen und diesen uebergeben ;). Wobei ich mir aber nicht sicher bin, dass Du wirklich einen 5*20 Char Array uebergeben moechtest, sondern vielmehr einen Array der 5 Pointer auf Strings der Laenge 20 enthaelt.

Nic

mit gegebenem char feld[2][2] und einer Funktion void funk(char* p),

kann man beispielsweise funk(feld[0]) realisieren.

Das übergibt einen Zeiger auf das erste Element.

funk(feld[1]) würde dann einen Zeiger auf den dritten Char übergeben.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.