Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Begriffserklärung

Was bitte bedeutet die Variablen dynamisch bzw. statisch anlegen im Zusammenhang mit Programmiersprachen (z.B in C)?


Antworten zu Begriffserklärung:

hi flower.

wenn ich mich nicht irre, legst du ne statische variable wie ne konstante an, d.h. du weist ihr einmalig nen wert zu (also am Programmanfang) und mit diesem wert rechnest du dann. während bei dynamischen variablen kann sich der wert ändern während des programms. aber ich prüf das nochmal nach.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ne ich denke er meint new und delete in C malloc() und free() (soviel ich aus meinen C kenntnissen weiss)

statisch bedeutet das du deine variablen oder objekte was auch immer auf dem Stack anlegst und diese variablen oder objekte werden nach verlassen der funktion wieder aus dem stack entfernt im gegensatz zum dynamischen speicher der auf dem heap angelegt wird mit new
z.b

int *pInt = new int //Zeiger der auf eine Variable auf dem heap zeigt

*pInt = 12 //variable den wert 12 zuweisen

//Achtung nachdem speicher auf dem heap angelegt wurde ist anzuraten den wieder zu löschen mit delete

delete pInt //speicher wird gelöscht
pInt = NULL; //zur sicherheit wird noch dem Zeiger NULL als adresse zugewiesen

der vor und nachteil von dynamischen und statischen speichern sind das dynamische speicher noch speicherbelastend sein können und man auf denen arrays auch ohne konstante definieren kann der nachteil ist das der heap weniger speicher hat als der stack

der stack ist einfacher in der handhabung jedoch kann er bei grossen objekten speicherfressend sein (das kann man jedoch alles mit zeigern lösen)

der heap wird z.b genutzt wenn du dynamische arrays haben willst die zur laufzeit beliebig geändert werden sollen. doch ACHTUNG das heisst nicht das ein array selbst einfach geändert werden kann gemeint wie:

int* pInt = new int[12];

delete [] pInt;
pInt = NULL;

pInt = new int[23];

den dynamischen speicher habe ich z.b bei meiner string klasse benutzt damit ich z.b einen string verlängern verkürzen und weitere chars anfügen konnte

so ich hoffe du hast es verstande (doch so wie ich meine erklärungen kenne nicht ;D) poste nur wenn du was ned verstehst


« Browser abfrage mit VB-Scriptprogrammieren! »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!