Problem mit externen Zeigern

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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.