Variablen löschen.. Wie?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,


    wie lösche ich Variablen?
    Wenn ich zB einen Counter verwende und den danach nichtmehr brauche,
    würde ich den gerne löschen. Ist das Möglich?


    Beispiel:
    new count, countstr[128];
    for(new i=0; i<MAX_OBJECTS; i++)
    {
    if(!IsValidObject(i)) continue;
    count++;
    }
    format(countstr,128,"%i Objects loadet;",count);
    count = 0;


    Hier möchte ich am Ende den "count" wieder entfernen/löschen.


    Ist das möglich?

  • Wenn es Lokale Variablen sind, werden sie automatisch, nachdem die Funktion oder der Teil einer Funktion (z.B. if Statements, Schleifen) ausgeführt wurde, gelöscht.


    Globale Variablen würde ich wie oben beschrieben auf 0 setzen, die Memory Nutzung sollte dann sehr gering sein.


    Wenn du Ahnung vom Werk hast und DRINGEND Variablen löschen willst, könntest du Y_Less malloc Include verwenden. (NUR WENN DU AHNUNG HAST)


    Mfg


  • //global
    new variableEins;


    //lokal
    public abc()
    {
    new variableZwei;
    }
    variableEins ist überall verwendbar und ist demnach auch immer da und nicht löschbar
    variableZwei ist nur in public abc() verwendbar und lebt auch nur solange abc() läuft



    Und das eine Variable keinen RAM bei dem auf 0 setzen benötigt ist falsch!

  • Bei Integer ist dies nicht möglich, denke ich, nur halt lokal.
    Bei Strings löscht du die Variablen, indem du 'EOS' deklarierst, soweit ich weiß.


    new string[128];
    string = "Ich bin der Text";
    string = EOS; // <-- Variable sollte gelöscht sein und keinen Ram mehr verbrauchen. I: /0


    Korrigiert mich, falls das falsch ist.

    Einmal editiert, zuletzt von k4biX ()

  • Bei Integer ist dies nicht möglich, denke ich, nur halt lokal.
    Bei Strings löscht du die Variablen, indem du 'EOS' deklarierst, soweit ich weiß.


    new string[128];
    string = "Ich bin der Text";
    string = EOS; // <-- Variable sollte gelöscht sein und keinen Ram mehr verbrauchen. I: /0


    Korrigiert mich, falls das falsch ist.


    nein stimmt nicht(gibt wahrscheinlich sogar einen error aus), PAWN hat dann immer noch den Array von [128] in Besitz.


    hier ganz simpel die zwei verschiedenen Optionen erklärt: