Bonjour,
Mon problème se pose car je ne peux pas utiliser les "vector" puisqu'il s'agit d'un exercice scolaire.
La faq dit à ce sujet
"Pour agrandir une zone (généralement un tableau) allouée via l'opérateur new il faudra faire la manipulation à la main :
- Allouer un nouvel espace mémoire de la taille souhaitée
- Y copier son contenu
- Libérer l'ancien espace mémoire ".
En tentant cette approche "bête et méchante", je me bute à un autre problème car je souhaite que ma nouvelle instance ait le même nom : la portée des variables.
Voilà ce que je tente de faire :
Bon, j'imagine que vous voyez le problème, au niveau de *1* nouvelleInstance est libérée grâce au destructeur de classe donc pointeurSurInstance ne pointe sur rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 maClass * pointeurSurInstance while(cin>>item){ if(monInstance.monTableau.estRempli()){ maClass nouvelleInstance(de taille plus grande); //alloue un nouvelle espace plus grand recopier(pointeurSurInstance, nouvelleInstance);//copie le contenu pointeurSurInstance = &nouvelleInstance; } *1* //... //agit sur l'instance pointée par pointeurSurInstance en fonction de cin //... }
Je n'ai aucune idée de la manière de faire pour résoudre le problème.
D'avance merci.
Partager