Pointer + LCD Display Problem

Gast #495467
Lesenswert?
• ▲
▼
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.
Gast #495470
Lesenswert?
• ▲
▼
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.


#495509
Lesenswert?
• ▲
▼
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren