mikrocontroller.net

Forum: Compiler & IDEs Problem mit externen Zeigern


Autor: Osti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Programm ist in mehrere Dateien aufgeteilt. In der Datei init.c 
erstelle ich ein Array von Zeigern. Dazu kommt noch die entsprechende 
Header Datei.
//init.c
char *display_array[5];
Dieser Zeiger soll jeweils auf ein Array zeigen mit Text drin, was dann 
auf dem Display ausgegeben wird

Die Datei menu.c sieht nun folgendermaßen aus
//menu.c
#include "init.h"
extern char *display_array[];

void string_to_display()
{
  display_array[0]="Test1";
  display_array[1]="Test2";
}

In main.c gebe ich das ganze dann auf dem Display aus:
//main.c
#include "init.h
#include "menu.h
int main ()
{
  LCD_Print(display_array[0],1,zeile,1,1,2,blue, yellow);
  LCD_Print(display_array[1],1,zeile,1,1,2,blue, yellow);
}
Nur auf dem Display wird nichts geschrieben. Es wird beim kompilieren 
aber auch kein Fehler nagezeigt.

Packe ich die Zuordnung aus menu.c mit in die Main Methode, klappt das 
ganze ohne Probleme mit der Ausgabe.
//main.c
#include "init.h
#include "menu.h

display_array[0]="Test1";
display_array[1]="Test2";

int main ()
{
  LCD_Print(display_array[0],1,zeile,1,1,2,blue, yellow);
  LCD_Print(display_array[1],1,zeile,1,1,2,blue, yellow);
}

Was muss ich machen, damit ich dem Zeiger im File menu.c einen Text 
zuordnen und dieser danach auch im main ausgegeben wird?

Vielen Dank schon einmal für eure Hilfe.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Osti wrote:
> In main.c gebe ich das ganze dann auf dem Display aus:
>
//main.c
> #include "init.h
> #include "menu.h
> int main ()
> {
>   LCD_Print(display_array[0],1,zeile,1,1,2,blue, yellow);
>   LCD_Print(display_array[1],1,zeile,1,1,2,blue, yellow);
> }


Wie wäre es, wenn du die Funktion string_to_display() auch mal aufrufen 
würdest, bevor du display_array benutzt?

Autor: Osti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, habe ich hier vergessen aufzulisten. Die wird noch im File menu.c 
aufgerufen. Das Problem ist, dass ist nur ein kleiner ausschnitt aus dem 
ganzen Programm, aber der Aufruf erfolgt.

Stimmt das denn mit den Zeigern so?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann poste doch bitte das, was nicht funktioniert, und nicht irgendwas
abgetipptes, das nur neue Fehler enthält...

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.