Problem mit externen Zeigern

Gast #1103127
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.
#1103136
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?
Gast #1103175
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?

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