Zum Inhalt springen

Zwei Vektoren übergeben


chaertl

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaub da liegst du falsch.

Das glaube ich nicht;)

Ein eindimensionales char Array ist im Prinzip ein String, ein zweidim. char Array ist

demnach ein Array von Strings.

Schau die hier mal an wie ein mehrdimensionales Array dynamisch angelegt wird, das dürfte das Problem lösen.

Gruß

Guybrush

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...