Bonjour à tous,

me voilà confronté à un problème très étrange.

Je crée une fonction Heat() qui est appelée par l'instance d'une classe CTarget dans une boucle while.
Le code est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
CTarget Target;
while(#condition)
{
  Target.Heat();
}
Une partie de la fonction heat() dans la classe CTarget est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
int CTarget::Heat()
{
  [...]
  const int nNbCells = 3;
  double** pMat;
  pMat = new double*[nNbCells];
  if (pMat == NULL)
    exit(1);
  for(int j=0;j<nNbCells;j++)
  {
    pMat[j] = new double[nNbCells];
    if (pMat[j]==NULL)
       exit(1);
  }
 
  [...]  // On passe à la fin de la fonction
 
  if (pMat != NULL)
    delete [] pMat;
 
  return 1;
}
Le code est compilé, exécuté au moins une cinquantaine de fois (le programme passe donc dans la boucle while une cinquante de fois), puis à un moment donné, il plante et me lance "Abnormal Program Termination".

Je n'ai pas décrit la fonction Heat() en détail, dans la mesure où le programme s'arrête à cet endroit précis.

Et je ne comprends pas cette erreur. Quelqu'un a-t-il déjà rencontré le même problème ?

Je vous remercie par avance pour vos réponses.
++