Strukturen und Dynamische Arrays
-
Wie übergibst du denn deine Playlist zwischen main() und der anderen Funktion?
-
Per Parameter!
Also ....
-> listefuellen(Playlist * liste,....)
Ich rufe die Funktion in der main so auf!
->listefuelle(&liste,...);
-
Zeig doch mal bitte etwas zusammenhängenden Code
(und eine detaillierte Beschreibung des Fehlers)
-
Ich würde dir ja gerne den ganzen Code schicken um dir den Fehler zu zeigen!
Gibt es hier nicht sowas wie PM???Ich möchte / darf nämlich nicht meinen Code hier präsentieren!!!
Ist halt eine Schul Aufgabe!!
-
Nein, hier gibt's keine PM - und selbst wenn du es mir schicken würdest, würde ich den Code erstmal hier veröffentlichen
(für andere hilfsbereite User)
Aber es reicht aus, wenn du den Code auf ein Minimum beschränkst - solange das zusammenhängend ist.
-
Gut zu wissen!
Also.......
int main (int argc, char * argv[]){ FILE * Datei = fopen (argv[1], "r");; Playlist * Liste=NULL; listefuelle(&liste,Datei); /*Hier Teste ich ob die Werte richtig angekommen sind*/ for (i=0;i<Liste->Tracks;i++){ printf("%u",&Liste->Pl[i].Dauer); } /*Komische Ausgabe -> nicht die Werte mit denen es gefüllt wurde*/ /*Erster eingelesener Track ist enthalten rest nicht!*/ }
void listefuelle(Playlist * liste,FILE * file){ /*Zeilen in Datei Zaehlen*/ ..... /*Speicherplatz für "Zeilen" Tracks reservieren -> pro Zeile ein Track*/ ..... /*Zeile für Zeile abarbeiten*/ /* *liste mit Werten füllen*/ /*Hier setze ich z.B Liste->Tracks einen höher, da eine Zeile ohne Fehler verarbeitet wurde und somit ein track eingefügt wurde*/ /*Hier Teste ich ob die Werte richtig gespeichert wurden*/ for (i=0;i<Liste->Tracks;i++){ printf("%u",&Liste->Pl[i].Dauer); } /*Die Werte wurden alle richtig gespeichert*/ }
Ich hoffe jetzt ist klar was überhaupt der Fehler ist!
Also die Variable kommt irgendwie Fehlerhaftig oder einfach nicht komplett wieder zurück in die Main!
*THX*
-
Das geht durch den Compiler? Du übergibst die Adresse eines Zeigers an die Funktion anstatt des Zeigers.
(btw, die Bezeichnungen passen nicht so ganz zu den Definitionen aus dem Eröffnungsbeitrag)
-
Ja mein Kompiler sagt nix!
Hab natürlich auch alles ausgestellt, Warnungen und Fehler da sonst immer bei sscanf usw. nen Fehler kommt das "sscanf ist veraltet" oder so!Ich kann dort irgendwie nur die Adresse des Zeigers übergeben, sonst mekkert er!
-
Was ist denn das für ein komischer Compiler? (btw, Warnungen ausschalten kann ich noch verstehen, aber FEHLER?)
richtig wäre sowas:
PlayList liste; listefuelle(&liste,...);
-
Oh man!!
Gut das es Leute wie dich gibt, die so dummen Pansen wie mir helfen!
DANKE