Forum: Compiler & IDEs Problem mit externen Zeigern


von Osti (Gast)


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.
1
//init.c
2
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
1
//menu.c
2
#include "init.h"
3
extern char *display_array[];
4
5
void string_to_display()
6
{
7
  display_array[0]="Test1";
8
  display_array[1]="Test2";
9
}

In main.c gebe ich das ganze dann auf dem Display aus:
1
//main.c
2
#include "init.h
3
#include "menu.h
4
int main ()
5
{
6
  LCD_Print(display_array[0],1,zeile,1,1,2,blue, yellow);
7
  LCD_Print(display_array[1],1,zeile,1,1,2,blue, yellow);
8
}
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.
1
//main.c
2
#include "init.h
3
#include "menu.h
4
5
display_array[0]="Test1";
6
display_array[1]="Test2";
7
8
int main ()
9
{
10
  LCD_Print(display_array[0],1,zeile,1,1,2,blue, yellow);
11
  LCD_Print(display_array[1],1,zeile,1,1,2,blue, yellow);
12
}

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.

von Karl H. (kbuchegg)


Lesenswert?

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


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

von Osti (Gast)


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?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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

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
Noch kein Account? Hier anmelden.