globale Variable
-
Hallo,
ich bin gerade dabei ein Programm zu schreiben, welches aus vielen Funktionen besteht, welche alle auf den Inhalt eines char-Arrays zugreifen müssen.
Um dies zu realisieren habe ich ein char-Array einfach ausserhalb aller funktionen deklariert.
Aber es kommt immer ein Speicherzugriffsfehler...
Wie definiere ich eine Variable auf die ich immer zugriff habe?
Danke
-
In dem du sie außerhalb aller Funktionen am besten vor allen Funktionen deklarierst.
Der Fehler scheint hier aber etwas anderes zu sein.
Post die Deklaration, eine kurze Funktion die zugreift und den Fehler den sie verursacht.
-
Da ist eine globale Variable schon richtig (obwohl ich trotzdem empfehlen würde das Array an die Funktion zu übergeben).
Wie hast du dein char-Array denn definiert? Eventl. hast du einen Speicherzugriffsfehler, weil du zu wenig oder keinen Speicher für dein char-Array eingeholt hast.
Zeig deine Definition mal her :).
MfG SideWinder
-
int i; int main(void) { first_command(); } int first_command(void) { scanf("%i", i); printf("%i", i); }
-
der Fehler ist in scanf, es muß heißen &i;
Anmerkung: ich hoffe dies ist nur ein Beispiel.
eine Variable i global zu machen, solche Leute gehören geste...
Wenn man an globalen Variablen nicht vorbeikommt (ja ich weis man kommt prinzipiell ohne aus, aber manchmal ist es bequemer) so sollten sie sinnvolle eineindeutige somit meist längere Namen haben, alles andere führt dazu das das Programm nur so von Nebeneffekten und somit Fehlern wimmelt und nicht wartbar ist.
Meistens ist es sinnvoll diese globalen Variablen in ein eigenes C-File zusammen mit Zugriffsfunktionen zu verlagern. In diesem File dann die Variable als static global zu deklarieren.
Man kann dann nur über die Zugriffsfunktionen mit dieser Globalen arbeiten.
-
jetzt bekomme ich 0 raus...
-
Was hast du denn eingegeben?
Und wie sieht der Code jetzt aus?
-
doro schrieb:
jetzt bekomme ich 0 raus...
Bei printf() auch &i übergeben?
Außerdem scheint das nicht der ganze Code zu sein - first_command() gibt nichts zurück. Greifst du sonst noch auf irgendeine Variable i zu?
MfG SideWinder
-
wo ist denn da das array?