zweidimensionale Struktur an eine Funktion übergeben
Verfasst: Di Mär 11, 2014 5:30 pm
--->TIPPFEHLER GEFUNDEN!
Hallo,
ich möchte meine zweidimensionale Struktur a) als Struktur und b) als Zeiger auf diese Struktur an meine Funktionen ausgeben1 und ausgeben2 übergeben. Diese Funktionen sollen mir den Inhalt meiner Struktur anzeigen. Die Struktur Song soll zunächst nur Informationen über zwei Lieder speichern.
Hier mein Quellcode:
Wenn ich die Ausgabe in der main-Funktion mache, dann funktioniert alles einwandfrei. Ich übergebe anscheinend meinen Parameter falsch, aber ich weiß nicht wie ich das richtig machen soll.
Als Fehlermeldung beim Kompilieren erhalte ich:
Hallo,
ich möchte meine zweidimensionale Struktur a) als Struktur und b) als Zeiger auf diese Struktur an meine Funktionen ausgeben1 und ausgeben2 übergeben. Diese Funktionen sollen mir den Inhalt meiner Struktur anzeigen. Die Struktur Song soll zunächst nur Informationen über zwei Lieder speichern.
Hier mein Quellcode:
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void ausgeben1(struct Songs[2]);
void ausgeben2(struct Songs*[2]);
struct Song{
char Interpreter[30];
int Erscheinungsjahr;
char Titel[30];
};
int main(){
struct Song songs[2];
struct Song *psongs[2];
psongs[0] = &songs[0];
psongs[1] = &songs[1];
strcpy(songs[0].Interpreter, "Interpreter 1");
songs[0].Erscheinungsjahr = 2002;
strcpy(songs[0].Titel, "Titel 1");
strcpy(songs[1].Interpreter, "Interpreter 2");
songs[1].Erscheinungsjahr = 1990;
strcpy(songs[1].Titel, "Titel 2");
ausgeben1(songs);
ausgeben2(psongs);
system("Pause");
return 0;
}
void ausgeben1(struct Song songs[2]){
for(int i = 0; i<2; i++){
printf("%s\n", songs[i].Interpreter);
printf("%d\n", songs[i].Erscheinungsjahr);
printf("%s\n", songs[i].Titel);
}
}
void ausgeben2(struct Song* psongs[2]){
for(int i = 0; i<2; i++){
printf("%s\n", psongs[i]->Interpreter);
printf("%d\n", psongs[i]->Erscheinungsjahr);
printf("%s\n", psongs[i]->Titel);
}
}
Als Fehlermeldung beim Kompilieren erhalte ich:
Was ist genau mit dem Typ Song[] gemeint und wie muss die Übergabe in diesem Beispiel richtig gemacht werden? Danke!'ausgeben1': Konvertierung des Parameters 1 von 'Song [2]' in 'Songs []' nicht möglich
'ausgeben2': Konvertierung des Parameters 1 von 'Song [2]' in 'Songs []' nicht möglich