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 :

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
   //...
}
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.

Je n'ai aucune idée de la manière de faire pour résoudre le problème.

D'avance merci.