nicht deklarierte Variablen geben unerklärliche Werte aus



  • Hallo,
    ich bin neu in dem Thema. Ich habe ein bisschen herumgetestet und habe Variablen ausgegeben, die nicht deklariert wurden. Also ganz simpel:

    int main (void)
    {
    int a, b, c, d, e, f;

    cout << a << endl;
    cout << b << endl;
    cout << c << endl;
    cout << d << endl;
    cout << e << endl;
    cout << f << endl;
    

    cin.sync ();
    cin.get ();
    return 0;

    }

    wenn ich den Code nun ausführe kommen Zahlen raus, die ich mir nicht erklären kann.

    2
    47
    47
    8
    55
    6618984

    Es sind immer die selben Zahlen, ich verwende das Programm Dev-CppPortable (aktuelle Version) und ich habe auch schon den Neustart versucht.
    Ich vermute das es irgendein Zwischenspeicher ist. Sofern es sich um den Zwischenspeicher handelt, wie kann ich den leeren?



  • Die Variablen sind deklariert, sonnst könnte der Compiler nicht damit arbeiten
    Die Variablen sind sogar definiert, sonnst könnte nicht darauf zugegriffen werden.

    Sie sind aber nicht initialisiert.
    Beschreibe die Variablen mit den Werten, die du haben möchtest.

    PS. dieses ist das Unterforum speziell für CLI mit .NET.



  • Du meinst "nicht initialisiert (zugewiesen)" - denn deklariert sind sie ja.

    Und deswegen ist es eben "undefiniertes Verhalten" und es kann alles mögliche ausgegeben werden.

    Technisch gesehen sind die lokalen Variablen auf dem Stack abgelegt und dieser enthält eben beliebige Werte.



  • PS. dieses ist das Unterforum speziell für CLI mit .NET.

    Oh, sorry kann ich das irgenwie löschen/verschieben?

    @th69 sagte in nicht deklarierte Variablen geben unerklärliche Werte aus:

    Du meinst "nicht initialisiert (zugewiesen)" - denn deklariert sind sie ja.

    Und deswegen ist es eben "undefiniertes Verhalten" und es kann alles mögliche ausgegeben werden.

    Technisch gesehen sind die lokalen Variablen auf dem Stack abgelegt und dieser enthält eben beliebige Werte.

    achso ist das, danke.



  • @Macadamia

    @th69 sagte in nicht deklarierte Variablen geben unerklärliche Werte aus:

    Technisch gesehen sind die lokalen Variablen auf dem Stack abgelegt und dieser enthält eben beliebige Werte.

    Und praktisch gesehen kommt zufällig ein Programm raus, wo vor der Ausführung von main() immer ganz bestimmte Werte in diesem Bereich liegen, und daher sind es immer die selben Werte die angezeigt werden.


Log in to reply