DELETE

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
CodeCommander
Beiträge: 213
Registriert: 02.03.2014 16:06

DELETE

Beitrag von CodeCommander »

~ DELETE ~
Zuletzt geändert von CodeCommander am 18.01.2015 14:52, insgesamt 1-mal geändert.
~ DELETE ~
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Variable freigeben

Beitrag von STARGÅTE »

Variablen werden (sobald sie benutzt werden) beim kompilieren reserviert und das unabhängig davon ob sie vorher explizit mit Define definiert wurden.
Variablen in Proceduren, werden im Stack erzeugt und somit nach Beendigung der Procedure wieder freigegeben.

Also nein.

Gibt es denn ein Grund warum du den "winzigen" Speicher den eine Variable belegt wieder freigeben musst?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
CodeCommander
Beiträge: 213
Registriert: 02.03.2014 16:06

Beitrag von CodeCommander »

~ DELETE ~
Zuletzt geändert von CodeCommander am 18.01.2015 14:52, insgesamt 1-mal geändert.
~ DELETE ~
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Variable freigeben

Beitrag von NicTheQuick »

Purebasic unterstützt keine Scopes wie es C/C++ tut. In Purebasic gibt es nur einen globalen Scope, einen Scope pro Aufruf einer Procedure, einen Scope pro Thread und das war's glaube ich schon.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Variable freigeben

Beitrag von STARGÅTE »

CodeCommander hat geschrieben:dass du innerhalb einer Schleife Variablen deinieren kannst die nach Schleifenbeendigung wieder ungültig und nicht nutzbar sind.
Ja ist mir bekannt.
CodeCommander hat geschrieben:i wird im Schleifenkopf definiert und ist nur innerhalb dieser Schleife gültig. Nutzung von i außerhalb nicht möglich. Genau das will ich. Irgendwie möglich in PB?
Nein ist es nicht, da ja die Kompilierung ganz anders ablaufen müsste.

Alle VariableNamen werden immer als Defined angenommen und sind somit im gesamten Main-Programm gültig und nutzbar.

@Nic: Naja zumindest Module erlauben noch den lexikalischen Scope.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Variable freigeben

Beitrag von es_91 »

Also gibt es, außer den "neuen" Modulen, keine Möglichkeit, dass mein Programm im Hauptprogramm definierte Variablen wieder vergisst?

Ist es sinnvoll, Variable wie andere Elemente, die durch eine Initialfunktion eingerichtet werden und durch eine Close...()- oder Free...()-Funktion wieder verdampft werden, zu betrachten? Wenn, währe es ja sinnvoll, diese wieder zu dejustieren.

Was haltet ihr von der Idee, alle Variablen des Hauptprogramms in eine Funktion zu packen und diese, nennen wir sie main() oder init(), einmal aufzurufen? Dann fehlen zwar globale Variablen, aber von deren Verwendung wird einem ja fast überall abgeraten...
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Variable freigeben

Beitrag von Nino »

es_91 hat geschrieben:Ist es sinnvoll, Variable wie andere Elemente, die durch eine Initialfunktion eingerichtet werden und durch eine Close...()- oder Free...()-Funktion wieder verdampft werden, zu betrachten? Wenn, währe es ja sinnvoll, diese wieder zu dejustieren.
Variablen oder andere Programm-Elemente können weder "verdampft" noch "dejustiert" werden.
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Variable freigeben

Beitrag von es_91 »

Nino hat geschrieben:Variablen oder andere Programm-Elemente können weder "verdampft" noch "dejustiert" werden.
Danke für die Deutschlektion.

Du liegst aber falsch, falls Du mit Deiner Aussage erklären wolltest, dass Programmelemente nicht (manchmal) deinitialisiert werden sollten.
Zuletzt geändert von es_91 am 07.12.2014 11:36, insgesamt 1-mal geändert.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Variable freigeben

Beitrag von Nino »

es_91 hat geschrieben:Hoffentlich hat Deine Aussage auch einen technischen Hintergrund,
Meine Aussage hat durchaus einen Hintergrund.
Wenn Du das nicht selbst verstehst, kann ich Dir allerdings nicht helfen.


//edit:
Geänderte Nachricht von es_91 hat geschrieben:Du liegst aber falsch, falls Du mit Deiner Aussage erklären wolltest,
Ich wollte genau das erklären, was ich erklärt habe. Wer sinnverstehend lesen kann, ist klar im Vorteil.
Zuletzt geändert von Nino am 07.12.2014 18:38, insgesamt 1-mal geändert.
es_91
Beiträge: 410
Registriert: 25.01.2011 04:48

Re: Variable freigeben

Beitrag von es_91 »

So, dann erkläre, warum 'Variablen oder andere Programm-Elemente' nicht deinitialisiert werden können oder sollten!
Antworten