Was bitte bedeutet die Variablen dynamisch bzw. statisch anlegen im Zusammenhang mit Programmiersprachen (z.B in C)?
flower Gast |
flower Gast |
Was bitte bedeutet die Variablen dynamisch bzw. statisch anlegen im Zusammenhang mit Programmiersprachen (z.B in C)?
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.
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 ) poste nur wenn du was ned verstehst
« Browser abfrage mit VB-Script | programmieren! » | ||