Salut les experts C++ !

Voilà un comportement rigolo que je voudrais que vous m'expliquiez:
Mon programme marche pour un petit nombre mais pas pour un grand....


Je definis un objet (monobjet) d'un type (montype) que j'ai créé et lorsque j'appelle une méthode (mamethode) de cet objet, il refuse de commencer la méthode si un grand nombre a été choisi.
tete est un pointeur sur les objets de type montype qui forment une "pile" FIFO.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
{
 montype monobjet;
 if (tete!=NULL)
 	{
     monobjet.mamethode(*tete); //ligne de plantage
 	};
};
Ce bloc plante evidemment car, comme un boulet, g omis de définir le constructeur de copie. G donc définis le constructeur de copie et g remplacer l'appel de fonction par valeur par un appel de fonction par référence/pointeur (supposé moins lourd).

Rien y fait. plantage à la meme ligne.

J'ajoute enfin que:
  • Il n'y a pas de dépassement de capacité
  • Les objets de la pile ne renvoient jamais NULL lors de leur "new", donc pas de pb d'allocation mémoire.
  • La pile a une taille dépendante du nombre choisi au début.
  • J'utilise Borland C++ 5.0 (vieux et efficace) et c un prog win32 en mode console.


Pkoi refuse t il de travailler pour des grands nombres, alors que le prog a l'air dimensionné pour y arriver ?