Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...