Zeiger auf Strukturen & dynamische Speicheranf.
-
Hi !
Habe ein kleines Problem mit meinem Prog. Mein Prog soll eine Summenformel
(pow((-1),i)/(i*(i+1)))
berechnen und dabei dynamische Speicheranforderung nutzen. Nur leider funktioniert das absolut nicht. Wuerde mich ueber Tipps freuen....struct bruch summe (int n){ int i=0; struct bruch *zb; struct bruch ze; zb=(struct bruch *)malloc(sizeof(struct bruch)); ze.zaehler=0; ze.nenner=0; for(i=0;i<n;i++) { zb->zaehler=0; zb->nenner=0; zb->zaehler=pow((-1),i); zb->nenner=i*(i+1); ze=add(ze,*zb); } return(ze); }
-
braucht add wirklich als zweiten Para einen Zeiger auf einen Zeiger??
Ware
add(ze,zb) nicht sinnvoller?
-
nee add braucht zwei Strukturen. Wo siehst du nen Zeiger auf nen Zeiger?
Abgesehen davon, dass der Einsatz von dynamischem Speichermanagement hier fehl am Platze und falsch implementiert ist -- es wird nie free aufgerufen -- würd ich mal sagen, dass der Wert 0 bei einem Bruch nicht durch 0/0 sondern durch 0/1 dargestellt werden sollte. Sonst ist der Wert undefiniert, und wenn add versucht, den Hauptnenner zu bilden, knallts.
-
Wie funktioniert das ohne Zeiger? Bei dynamischer Speichervergabe benoetige ich doch zwingend einen Zeiger?!?
add() nimmt natuerlich auch eine Variable vom Typ struct bruch
Das Programm kompiliert richtig, wirft aber das falsche Ergebnis aus