Hallo Ubuntuusers.
Habe heute eine Frage an die Programmierer unter euch. Ich bin nun schon recht weit gekommen mit dem erlernen des Programmierens unter GTK3. Aber die folgende Frage begleitet mich schon die ganze Zeit.
Wenn ich einen Pointer wie z.B. für Pixbuf innerhalb eines Funktionsaufrufes mache, oder eine Variable innerhalb eines Funktionsaufrufes erstelle, wird dann mit jedem Aufruf der Funktion ein weiterer Pointer erstellt oder die CHAR Variable erneut mit 100 Stellen erzeugt, oder werden all diese Deklarationen / Erzeugungen beim verlassen der Funktion automatisch wieder frei gegeben???
Hier nur ein Beispiel von dem was ich Beschreibe...
1 2 3 4 5 6 7 8 9 10 11 12 | void funktionsaufruf () { //innerhalb eines Funktionsaufrufes... //Hier ist es klar... gchar *variable2; //Dieses ist nur ein Pointer und kann mit ... g_free(variable2); //...wieder verworfen/gelöscht werden. //Hier ist es nicht klar... GdkPixbuf *pixbuf_icon1; //Weil später noch ein Bildchen hinzu kommt. char variable1[100]; //weil später noch ein String erzeugt wird. int i; //weil dieses für z.B. eine "for"-Schleife benötigt wird. } //Ende Funktionsaufruf |
Wenn ich die Beispielfunktion nun 10 mal aufrufe, habe ich dann 10 mal die Variable "variable1" mit jeweils 100 Stellen erzeugt? und hat GdkPixbuf dann 10 Pointer bekommen? Oder doch nicht????
Danke für eure Hilfe. Gruß Tom