C ++ - Überprüfen Sie, ob der Zeiger auf einen gültigen Speicher zeigt (hier können keine NULL-Prüfungen verwendet werden)

Ich erstelle Skriptsprache. Wenn ich etwas zuordne, ordne es das Ding zu und gibt die Adresse zurück, und dann mache ich was auch immer damit und lösche es dann. Ich kann die darin enthaltenen Variablen nicht so steuern wie das Erstellen einer Struktur in meiner Sprache (Struktur mit Zeiger und Bool, um zu überprüfen, ob der Zeiger auf gültige Daten zeigt) und so weiter, weil dadurch meine Sprache im RAM langsamer und größer wird.

Zum Beispiel: (Meine Skriptsprache ist leicht zu verstehen. Ich bezweifle, dass Sie dies nicht verstehen, aber ich werde trotzdem einige Kommentare hinzufügen.)

MyStruct = { //Function. For create object with it use 'new' before it.
    TestAliveVar=0
}
Func = { //I'll explain what exactly this function does every place it runs.
    if (!exists(arg0)) //C++: ???
        exit;
    arg0.TestAliveVar=1
    println "Still alive!";
}
var MyVar=new MyStruct(); //Returns address of the new object in the heap
                          //and runs on it the `MyStruct` function.
Func(MyVar);              //Sets his 'TestAliveVar' to 1
                          //and prints 'Still Alive!' with new line
delete(MyVar);            //C++: free(MyVar);
Func(MyVar);              //Does nothing

Die Frage ist, wie die Funktion erstellt wirdexists Sie sahen in diesem Code. Übrigens kann ich C ++ - Codes in dieser Sprache ausführen.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage