Allouer de la méoire en C++

Résolu/Fermé
Guy Niolo - 6 juin 2008 à 10:52
 Guy Niolo - 6 juin 2008 à 11:11
Tout d'abord bonjour à tous,

J'ai commencer le C++ il y a peu et une question me tourne dans la tête (d'une impotance peu capitale mais je suis curieux). Voici un extrait de mon programme :

char* Maliste::types_var(string * app, char** vari, int taille_txt){
string Arechercher
[...]
int n_var = nb_var(vari);
[...]
string * variables_isa = new string [n_var];
[...]
if (found_maj!=-1){variables_isa[i]=smintomaj(Arechercher);
vari[i]=&(variables_isa[i][0]);}
[...]

En déplacant moin pointeur vari[i] vers variables_isa[i], qu'advient-il de ce que vari pointait avant? Est ce que la mémoire de ce que je ne pointe plus est toujours allouée? Est ce qu'elle sera écrasée automatiquement au fil de mon programme?

2 réponses

mindslight Messages postés 87 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 29 octobre 2009 12
6 juin 2008 à 11:04
Bonjour,

le C++ n'est pas d'oter de Garbage Collector, par consequend tout segment
de memoire reste aloue tant que l'on a pas fait appel a delete.

la variable pointe precedement reste donc alloue.
0
Merci pour la réponse, j'ai modifié ainsi :

if (found_maj!=-1){variables_isa[i]=smintomaj(Arechercher);
delete vari[i];
vari[i]=&(variables_isa[i][0]);}

Ca a l'air de fonctionner
0