mit pointer wert einer Variablen löschen
-
Also ich übergebe eine Adresse an eine Funktion z.B. &y falls er gerechnet hat soll er den berechneten wert schreiben also *y=berechneter Wert.
Wenn er NICHT berechnet hat soll er den aktuellen wert von y löschen.
wie geht das *y=void oder *y=fflush?
Gruß Michael
-
Du kannst ihn auf einen ungültigen Wert setzten (z.B. 0).
-
Es darf leider auch nicht 0 sein. da y einen Scheitelpunkt ausgibt.
-
Was verstehst du unter löschen?
-
Übergib die Adresse eines Zeigers, und setze den dann NULL, also
void fkt(int **i) { if( OK ) **i=wert else *i=NULL; }
-
Das der Wert von y gelöscht ist. Das keine Zahl darin steht. Wie beim Anfang des Programmes z.B. int y; da steht ja auch nichts drinnen
-
Ich hatte das *y=NULL; vorhin schonmal ausprobiert. Da gibt er mir aus "incompatible types when assigning to type ‘double’ from type ‘void *’".vermutlich wegen meinem "double y;"
-
Klar steht da am Anfang was drin.
Gib das doch mal aus (mit printf oder im Debugger)
Schließe aber nicht daraus, dass es immer der gleiche Wert ist.Es gibt auch noch NaN (Not a Number). Das ist z.B das Ergebnis von 0.0/0.0
Wie du das nutzen kannst hängt allerdings von dem unterstützten Standard von deinem Copiler ab.
-
Entweder du übergibst die Adresse eines Zeigers wie Wutz das gesagt hat oder du lieferst 0 zurück, wenn kein Wert berechnet wurde, bzw. 1 wenn einer berechnet wurde.