Warum Var = 0?

Gast #3034615
Lesenswert?
• ▲
▼
int zaehler = 0;

int main( void )
{
  zaehle();
  for (;;)
  {
   ...
   tueetwas();
   ...
  }

}

void zaehle(void)
{
  zaehler = 34;
}

void tueetwas(void)
{
printf(" %1",zaehler)
}

Hallo Leute das ist vereifacht mein Programm.
Ich habe ein verständnissproblem mit der gültigkeit von Variablen.
nach meinem Verständniss müsste jedesmal wenn tueetwas() aufgerufen 
wird,
die ausgabe 34 kommen. Leider ist sie immer 0.
KLeine Syntaxfehler bitte ich zu verzeihen, da ich das Programm auf das 
wesentliche gekürzt habe und aus meinem Gedächtnis einfach runtergetippt 
habe.
Kann mir jemand helfen. und sagen wie man das Problem in den Griff 
bekommt?
Warscheinlich sind Pointer die lösung (sind die nicht immer die 
lösung???)
leider habe ich trotzdem keine idee wie ich das lösen soll.

Liebe Grüße

Dirk
Gast #3034638
Lesenswert?
• ▲
▼
Mach es mir doch nicht so schwer.

Mein dargestelltes Codesekment habe ich schnell runtergetippt.
Es soll eigentlich nur zeigen das ich vor der Endlosschleife einer 
Variablen einen Wert zuweise, der dann nicht mehr geändeert wird.
In einer anderen Funktion will ich diese variable wieder nutzen. Leider 
hat das nicht funktioniert, deshalb habe ich sie mir zur fehlersuche 
ausgeben lassen.
Und siehe da anstatt 34 ist sie immer 0.
Gast #3034642
Lesenswert?
• ▲
▼
Zeig uns einfach deinen RICHTIGEN Sourcecode.

Vielleicht hast Su ja was wie
1
void zaehle(void)
2
{
3
 int zaehler = 34;
4
}

geschrieben - und siehst das auch nur als "kleinen Syntaxfehler".
Ist es aber nicht.
Also - zeige den wirklichen Source - sonst hilft alles raten nichts.
Moderator (Firma: Titel) Persönliche Seite #3034674
Lesenswert?
• ▲
▼
Dominik S. schrieb:
> So wie es oben steht passt alles (mit Ausnahme ...)
Dann liegt das Problem auserhalb der geposteten Zeilen.

Bei mir geht das nämlich: http://codepad.org/q0RW80Bw

Mach mal einen compilierbaren Dreizeiler, der bei dir den Fehler 
hervorruft. Dann sagst du noch, welche Toolchain und welche 
Zielplattform du verwendest und wie du feststellst, dass da 0 drin 
steht.

Du könntest natürlich auch einfach mal Schritt für Schritt 
durchdebuggen...

Ach ja, noch was:
Quelltext bitte in die passenden Tokens einbinden (siehe Screenshot).
Angehängte Dateien:

Antwort schreiben

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.

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.