Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Einfache Ausgabe mit "cout" verändert Programmablauf

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.11.2006, 11:00 Uhr
~schneizen
Gast


Hallo zusammen,

ich hab in meinem Programm ein kleines Problem, das ich mir nicht erklären kann. Das Problem ist folgendes:

double initial_value = 0.;
initial_value = funktion(); // liefert einen double Wert
...
for (..) {
...
cout << initial_value;
...
}

wenn ich das so compiliere, läuft das Programm zwar, liefert aber falsche werte.
mach ich testhalber statt:
initial_value = funktion();
ein
initial_value = const;
läuft das Programm wie es soll. der Wert initial_value kommt sonst nirgends mehr vor..
fehlerhaft läuft es auch, wenn ich statt der konstantenzuweisung die funktion lass, aber auf die ausgabe verzichte. Es scheint fast, als würde durch die Ausgabe irgendwas überschrieben, verändert..
Könnt ihr euch vorstellen, was das sein könnte! alles was ich an dynamischer Speicherreservierung im Programm nutze wird auch brav wieder delete[]et.
Betriebssystem Debian Sarge, mit gnu c++ 3.3.5

ich hoffe, das Problem ist einigermaßen klar geworden. schon mal danke
Michael
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.11.2006, 11:13 Uhr
~schneizen
Gast


grad noch was lustiges gesehen:

wenn ich es so mache:

double temp = funktion();
initial_value = temp;

funktioniert es auch nicht. Da ich aber weiß, dass beim ersten aufruf von funktion 0. rauskommen muss und dementsprechend schreibe:
initial_value = 0.
funktionierts, obwohl temp 100 auch vom typ double und 0. ist...
am aufruf von funktion() kanns übrigens nicht liegen, weil das später noch sehr oft kommt..
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.11.2006, 15:10 Uhr
Th



Ich nehme an, deine Variable 'initial_value' ist lokal und daher tippe ich auf einen Speicherüberschreiber deines Stacks. Am besten, du debuggst die einzelnen Zeilen und überprüfst jedesmal den Wert von 'initial_value'. Dann weiß du wo du Mist gebaut hast -)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: