Bonjour,
Est-il possible de faire ceci sans problème :
Allouer plusieurs un pointeur avec new et ne fair equ'un seul delete à la fin...Code:
1
2
3
4
5
6
7
8 GString* s; for (int i=0; i<nb ; i++){ s = new GString(); .... ... } delete s;
?
Merci
Version imprimable
Bonjour,
Est-il possible de faire ceci sans problème :
Allouer plusieurs un pointeur avec new et ne fair equ'un seul delete à la fin...Code:
1
2
3
4
5
6
7
8 GString* s; for (int i=0; i<nb ; i++){ s = new GString(); .... ... } delete s;
?
Merci
alors, c'est "possible"... i.e. c'est réalisable, ça ne causera pas d'erreurs ni à la compilation ni à l'exécution
cependant, tu auras un trou de mémoire, car sur toutes les variables allouées dans ton for, une seule sera libérée : la dernière.
Pour éviter cela, tu DOIS faire le delete DANS le for
Ben non, tous ceux que tu n'auras pas détruit vont se balader dans la nature sans plus aucun moyen de les retrouver puisque tu ne pointes plus dessus.
ok merci !
GString a priori c'est un truc de glib, c'est du C.
Et ça s'utilise pas du tout comme ça....