static double array



  • Hallo liebe Forenuser,

    ich habe schon nach meinem Problem gegoogelt und auch im Forum gesucht, bin aber nicht fündig geworden.

    Frage 1: Kann man in einer Funktion kein "static double test[300][200][4]" array deklarieren?
    Wie könnte ich so was eleganter lösen? Die Daten sollen nämlich nach dem Funktionsaufruf in derselben Funktion immer noch vorhanden sein für den nächsten Aufruf?

    Frage 2: Wenn ich in zwei verschiedenen Funktionen die Variable "static int test"
    deklariere, kommen die sich in die Quere oder? Besser test1 und test2 verwenden, sehe ich das richtig?

    Danke
    Neo



  • Neodym1981 schrieb:

    Frage 1: Kann man in einer Funktion kein "static double test[300][200][4]" array deklarieren?
    Wie könnte ich so was eleganter lösen? Die Daten sollen nämlich nach dem Funktionsaufruf in derselben Funktion immer noch vorhanden sein für den nächsten Aufruf?

    ja, bei 'static' bleiben die daten vorhanden (anders als bei 'auto' variablen).

    Neodym1981 schrieb:

    Frage 2: Wenn ich in zwei verschiedenen Funktionen die Variable "static int test"
    deklariere, kommen die sich in die Quere oder? Besser test1 und test2 verwenden, sehe ich das richtig?

    du kannst in jeder funktion den gleichen namen verwenden. dadurch, dass die variablen nur innerhalb der funktion gültig sind, in der sie angelegt wurden, gibt es keine verwechselungen.
    🙂



  • Neodym1981 schrieb:

    Frage 1: Kann man in einer Funktion kein "static double test[300][200][4]" array deklarieren?

    Im Prinzip schon, aber das ist schon viel, was Du da auf den Frame legen magst, u.U. kollidiert das mit den Einschränkungen des Compilers oder OS.

    Neodym1981 schrieb:

    Wie könnte ich so was eleganter lösen? Die Daten sollen nämlich nach dem Funktionsaufruf in derselben Funktion immer noch vorhanden sein für den nächsten Aufruf?

    malloc & Co benutzen, dann kannst Du nicht nur den Speicher vom Heap (quasi dem statischen Speicherpool) nehmen, sondern obendrein Dein 3D- Array statisch vergrößern und verkleinern, mußt nicht gleich so einen Riesenbrocken belegen.

    Neodym1981 schrieb:

    Frage 2: Wenn ich in zwei verschiedenen Funktionen die Variable "static int test" deklariere, kommen die sich in die Quere oder? Besser test1 und test2 verwenden, sehe ich das richtig?

    Nöh, Deine Sorgen sind unbegründet 😉



  • pointercrash() schrieb:

    Neodym1981 schrieb:

    Frage 1: Kann man in einer Funktion kein "static double test[300][200][4]" array deklarieren?

    Im Prinzip schon, aber das ist schon viel, was Du da auf den Frame legen magst, u.U. kollidiert das mit den Einschränkungen des Compilers oder OS.

    static-variablen - das sagt schon der name - werden in einem statischen speicherbereich angelegt, nicht auf dem (stack)frame.
    🙂
    ganz davon abgesehen sind 1920000 bytes (soviel wird das array wohl brauchen) sowieso recht viel...


Anmelden zum Antworten