Hallo, ich wollte mein Programm jetzt mit Zeigern realisieren und nun funktioniert es nicht mehr. Wisst ihr, wo ihr der Fehler drin liegt? ... char *tempu; int *manu; int16_t *tu; char m1tempu[14]; int m1manu; int16_t m1tu; m1tu = 19; m1manu='A'; tempu = m1tempu; manu = &m1manu; tu = &m1tu; dtostrf(*tu, 2, 0, *tempu ) ; lcd_puts(*tempu); lcd_puts(" "); lcd_putc(*manu); Das 'A' von m1manu wir ausgegeben, aber die 19 nicht.
Ich möchte das machen, damit ich dann einfach noch char m2tempu[14]; int m2manu; int16_t m2tu; Hinzufügen kann und dann die Zuweisung der Zeiger auf die anderen Variablen erfolgen kann und der untere Ausgabeteil so nicht verändert werden muss.
Stefanie wrote: > int16_t *tu; > int16_t m1tu; > > m1tu = 19; > tu = &m1tu; > > dtostrf(*tu, 2, 0, *tempu ) ; Das d in dtostrf steht für 'double'. Du hast aber keinen double, du hast einen int16_t. Also ist dtostrf die falsche Funktion. Selbst dann: dtostrf möchte einen Pointer auf ein char Feld in dem es das Ergebnis ablegen kann. tempu ist so ein Pointer. Also brauchst du keinen * Hat der Compiler da gar nichts gemeckert?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.