www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik incompatible pointer - Warum?


Autor: ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

folgendes Problem:

ich habe dieses struct:


typedef struct menu_actual_position  {
  uint8_t layer;
  uint8_t oldlayer;
  uint8_t position;
  uint8_t oldposition;
  uint8_t menu_active;
  uint8_t left_window;
  uint8_t right_window;
  void    *prevouis_addr_menu;
}menu_act_pos;


und diese functions die in meiner Headerdatei stehen:

void menu_init(menu_act_pos *pos_dummy);

und diese Deklaration plus funktionsaufruf:

menu_act_pos *nav;
menu_init(&nav);


und das ganze wird an diese Funktion geschickt:


void menu_init(menu_act_pos *pos_dummy)  {
  uint16_t k,i;
  menublankpara.color = white;
  menublankpara.content = menublank;
  menublankpara.frame = noborder;
  menublankpara.startx = 0;
  menublankpara.starty = 11;
  menublankpara.endx = 127;
  menublankpara.endy = 63;
  i = sizeof menublank/sizeof (uint8_t);
  for (k = 0; k<=i; k++)  {
    menublank[k] = 0x00;
  }
  ks0108_frame(&menublankpara);
  pos.layer = pos_dummy->layer;
  pos.left_window = pos_dummy->left_window;
  pos.menu_active = pos_dummy->menu_active;
  pos.position = pos_dummy->position;
  pos.right_window = pos_dummy->right_window;
}


nun bekomme ich aber die Warnung:

passing argument 1 of 'menu_init' from incompatible pointer type


Warum?
dass gleichsetzen in der Funktion klappt nämlcih auch nicht.



Gruß

Ingo

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Formelles Problem: menu_init(nav);
Inhaltlich: So geschrieben zeigt "nav" auf nichts, und es kracht.

Autor: ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich übergebe doch &nav?!

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ja auch richtig, nur die Zeile darüber stimmt dann nicht.
Du brauchst an der Stelle keinen Zeigen sondern ein 'echtes'
Datenobjekt.

Also so:
menu_act_pos nav;
menu_init(&nav);

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit &nav übergibst Du die Adresse Deines Pointers aber nicht den Pointer 
selbst!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.