problem mit listen...
-
cd_main.cpp: #include <string.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <assert.h> #include "taeter.h" int main() { // neuen Zeiger erstellen auf ein cd (cd*) mit dem Namen Nr1, der auf einen Speicherbereich zeigt, der gerade neu auf dem heap beschafft wurde struct straftaeter* Nr1=new straftaeter; straftaeter->next=new straftaeter; // neuen Zeiger erstellen auf ein cd (cd*) mit dem Namen Nr2, der auf einen Speicherbereich zeigt, der gerade neu auf dem heap beschafft wurde struct straftaeter* Nr2=new straftaeter; straftaeter->next=new straftaeter; bool cds_sind_gleich=false; bool namens_suche=false; strcpy(Nr1->name,"Hubert"); Nr1->alter=20; // entspricht (*Nr1).alter=20; strcpy(Nr1->verbrechen,"Mord an einem russisches Mafiaboss"); Nr1->strafdauer=20.0; // in Jahre ausgabe(Nr1); speicher_in_datei(Nr1); strcpy(Nr2->name,"Justin"); Nr2->alter=25; strcpy(Nr2->verbrechen,"10 Euro in der Bank gestohlen"); Nr2->strafdauer=0.5; ausgabe(Nr2); speicher_in_datei(Nr2); cds_sind_gleich=vergleichen(Nr1, Nr2); assert(cds_sind_gleich==false); if(cds_sind_gleich==true) { printf("Die Straftaete sind identisch\n\n"); } else { printf("Die Straftaete sind nicht identisch\n\n"); } printf("\n"); namens_suche=suchen("Hubert"); if(namens_suche==true) { printf("gefunden\n\n"); } else { printf("nicht gefunden\n\n"); } printf("\n\nAlle Tests erfolgreich"); // Speicher für Nr1 auf dem Heap freigeben delete Nr1; // Speicher für Nr2 auf dem Heap freigeben delete Nr2; return 0; } -------------------Konfiguration: struct - Win32 Debug-------------------- Kompilierung läuft... cd_main.cpp C:\Dokumente und Einstellungen\Gerald\Eigene Dateien\Hausübung\Informatik\struct\cd_main.cpp(49) : error C2660: 'suchen' : Funktion akzeptiert keine 1 Parameter suchen.cpp C:\Dokumente und Einstellungen\Gerald\Eigene Dateien\Hausübung\Informatik\struct\suchen.cpp(16) : error C2039: 'next' : Ist kein Element von 'straftaeter' c:\dokumente und einstellungen\gerald\eigene dateien\hausübung\informatik\struct\taeter.h(2) : Siehe Deklaration von 'straftaeter' C:\Dokumente und Einstellungen\Gerald\Eigene Dateien\Hausübung\Informatik\struct\suchen.cpp(18) : error C2039: 'next' : Ist kein Element von 'straftaeter' c:\dokumente und einstellungen\gerald\eigene dateien\hausübung\informatik\struct\taeter.h(2) : Siehe Deklaration von 'straftaeter' Ausgabe.cpp speichern.cpp vergleichen.cpp Fehler beim Ausführen von cl.exe. struct.exe - 3 Fehler, 0 Warnung(en) ------------------------------------------------------------------------------------------ suchen.cpp #include <string.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include "taeter.h" bool suchen(char *search, struct straftaeter* straftaeter) { while(true) { if((strcmp(straftaeter->name,search)==0)) { return true; } if(straftaeter->next != NULL) { straftaeter=straftaeter->next; } else { return false; } } } ---------------------------------------------------------------------- taeter.h struct straftaeter { char name[50]; int alter; char verbrechen[50]; float strafdauer; straftaeter *next; }; void ausgabe(straftaeter *print); bool vergleichen(straftaeter*Nr1, straftaeter *Nr2); bool suchen(char *search, struct straftaeter* straftaeter); void speicher_in_datei(straftaeter *save);
hi!!
wie übergebe ich den pointer aus der main??? und ich weiß nicht wie ich das mit next mache!!???cu
-
Hallo,
straftaeter ist der Name der Struktur, daher geht straftaeter->next auch nicht.
Du meinst sicher Nr1->next = ...bring das erstmal in Ordnung, dann schaun wir weiter.
MfG Jester
-
hi...wie mach i das dann beim suchen?? ohne next?
cu
-
// neuen Zeiger erstellen auf ein cd (cd*) mit dem Namen Nr1, der auf // einen Speicherbereich zeigt, der gerade neu auf dem heap beschafft wurde struct straftaeter* Nr1=new straftaeter; Nr1->next=new straftaeter; // hier was geändert // neuen Zeiger erstellen auf ein cd (cd*) mit dem Namen Nr2, der auf // einen Speicherbereich zeigt, der gerade neu auf dem heap beschafft wurde struct straftaeter* Nr2=new straftaeter; Nr2->next=new straftaeter; // hier ebenso
Und suchen braucht hat in der Deklaration glaub 3 Parameter, nachher versuchst Du es aber mit einem aufzurufen. Das mußt Du auch noch verbessern.
MfG Jester
P.S.: Markier doch bitte das nächste mal die Zeilen, auf die sich die Meldungen beziehen. Das ist sonst immer so blöd, weil im Forum die Zeilennummer nicht angezeigt wird.
-
hat jemand ein tuturial zu listen und verketteten listen?
wär klassecu