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
Dirk schrieb: > printf(" %1",zaehler) ^ Dann sage dem printf auch das es etwas ausgeben soll. Da muss ein d rein.
danke dir. aber genau das meinte ich mit kleine syntaxfehler. Da steht ein i bei mir
Dirk schrieb: > Da steht ein i bei mir Da muss trotzdem d rein, für dezimal. edit: ups...i müsste ja auch gen. Beitrag einfach ignorieren ;)
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.
Dirk schrieb: > Und siehe da anstatt 34 ist sie immer 0. aber nicht mit dem Programm, mache es doch mal lauffähig und du wirst sehen es geht.
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.
Ich weiß ja nicht, aber wäre es nicht sinnvoll, der Funktion void tueetwas(void) auch den Wert der Variablen zaehler zu übergeben? Oder liege ich da falsch? Servus Peter
Dirk schrieb: > Warscheinlich sind Pointer die lösung (sind die nicht immer die > lösung???) Nein... eigentlich nicht ^^ Dirk schrieb: > Kann mir jemand helfen. und sagen wie man das Problem in den Griff > bekommt? Leider nein. So wie es oben steht passt alles (mit Ausnahme der schon erwähnten "%1").
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).
hast du das abgekürzte, vereinfachte Beispiel auch mal compiliert? Ich vermute mal, dass irgendwo anders der Fehler liegt...
Nu isser weg - der Kollege Dirk (Gast) Macht so richtig Spass den Usern zu helfen, wenn sie dann einfach abtauchen .......
Sag mal habe ich dir irgendwas getan. Mein Tag besteht auch aus was anderem, ausser vor dem rechner sitzen. Ich will nicht undankbar erscheinen, aber nur weil ich mal ne Stunde nichts schreibe...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.