Struktur-Array

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Struktur-Array

Beitrag von nufan » Fr Sep 05, 2008 2:21 pm

So, mein x-ter Beitrag heute :)
Heute gabs gleich die erste Aufgabe. Keine Angst, mach ich schon selbst :D
Allerdings habe ich ein programmiertechnisches Problem: Ich will ein Feld von einer Struktur erstellen. Nur leider meldet Borland immer einen Fehler (Meldung kommt unten). Hier mal die wichtigsten Code-Teile:

Code: Alles auswählen

typedef struct
{
  int tag;
  int monat;
  int jahr;
} date;

typedef struct
{
  char vname [50];
  int anzbuchvname;
  char nname [50];
  int anzbuchnname;
  date gebdat;
  int nr;
} Schueler;

void Schuelerausgeben (int anz, Schueler s []);
...
int main ()
{
  
  Schueler s [100];

  ...

}


void Schuelerausgeben (int anz, Schueler s [])
{

  ...
  printf ("\nGeburtsdatum:  %d. %d. %d", s [i]->tag, s [i]->monat, s [i]->jahr);
  ...

}
So. Also nun zum Fehler: Überall wo ich s []-> geschrieben hab, bekomm ich einen Error:
Error: schülerliste.cpp(97,12):Pointer to structure required on left side of -> or ->*

Wahrscheinlich greife ich falsch auf das Element zu. Und wie sollte das dann aussehen?

Lg

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Struktur-Array

Beitrag von fat-lobyte » Fr Sep 05, 2008 2:32 pm

Den -> operator benutzt man, um von einem Zeiger auf eine Struktur zuzugreifen. Wenn du die Struktur mit dem [] operator schon dereferenzierst, ist es kein Zeiger mehr sondern eine Referenz.
Dann verwendet man den "." operator.
Kurz:
Schueler.gebdat(), und nicht Schueler->gebdat[]
Haters gonna hate, potatoes gonna potate.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Struktur-Array

Beitrag von nufan » Fr Sep 05, 2008 2:35 pm

Thx geht perfekt.
Ich habe da anscheinend zu kompliziert gedacht. :D
So schnell kann ein Thread zu Ende sein...

Antworten