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