erreur à l'éxecution destructeur delete []
	
	
		Bonjour, 
J'ai une erreur bizzard lors de l'exécution de mon programme  après avoir rajouté 
cette ligne dans mon destructeur :  delete [] T;
voici le programme
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 
 |  
 
#include "NuageDePoints.h"
#include <iostream>
#include<math.h>
#include<stdlib.h>
#include<string>
#include <time.h>
 
using namespace std;
 
// get an random float between 0 and 1
int NuageDePoints::getRand()
{
	srand(time(NULL));
	int nombre =(rand() % 11 );
	return nombre;
}
 
 
NuageDePoints::NuageDePoints(int _nb)
{
	nb= _nb;
	T= new Point[nb];     
	for(int i=0; i<nb ; i++)
	{          
     	int a=((getRand()*17)%11);
          int b=getRand(); 
		T[i].SetXPoint(a);
          T[i].SetYPoint(b); 
          for(int j=0 ; j<i ; j++)
          {
               if(T[i].testEgual(T[j]))
               {
			   a=((getRand()*13)%11);
                  b=getRand();                  
                  T[i].SetXPoint(a);
                  T[i].SetYPoint(b);
                  j=0;
               }
		}
     }
}
 
void NuageDePoints::SetPoint( Point p , int e )
{
     T[e].SetXPoint(p.X());
     T[e].SetYPoint(p.Y());    
}
 
Point NuageDePoints::getP(int e) const
{
	return T[e-1];
 
}
 
int NuageDePoints::getSize() const
{
	return nb;
}
 
NuageDePoints NuageDePoints::operator+(const Point& p)
{
	NuageDePoints nuage_temp(nb+1);
     for(int i=0;i<nb;i++)
     {
          nuage_temp.SetPoint(T[i],i);
     }
     nuage_temp.SetPoint(p,nb);
     return nuage_temp;
}
 
 
NuageDePoints operator+(const Point& point , const NuageDePoints& nuage)
{
	NuageDePoints nuage_temp((nuage.getSize())+1);
 
	for(int i=0;i<(nuage.getSize());i++)
     {
          nuage_temp.SetPoint(nuage.getP(i+1),i);
     }
     nuage_temp.SetPoint(point,(nuage.getSize()));
     return nuage_temp;
 
}
 
NuageDePoints operator-(const NuageDePoints& nuage, const Point& point)
{
     NuageDePoints nuage_temp(nuage.getSize()-1);
 
     for(int i=0;i<((nuage_temp.getSize()));i++)
     {
          if(!(nuage.getP(i+1).testEgual(point)))
 
          {
               nuage_temp.SetPoint(nuage.getP(i+1),i);
 
          }
 
     }
     return nuage_temp;
}
 
void NuageDePoints::getNuage()
{
	for(int i=0; i<nb;i++)
	{
		cout<<"point"<<(i+1)<<"\t"<<T[i].X()<<","<<T[i].Y()<<endl;
	}
}
 
 
void NuageDePoints::barycentre()
{
	float tmp_x=0;
	float tmp_y=0;
	for(int i=0;i<nb;i++)
	{
		tmp_x= tmp_x + T[i].X();
	}
	for(int j=0;j<nb;j++)
	{
		tmp_y= tmp_y + T[j].Y();
	}
 
	tmp_x= (tmp_x / nb );
	tmp_y= (tmp_y / nb);
	cout<<"barycentre du nuage de points:"<<endl;
	cout<<"barycentre:\tx=" << tmp_x <<"\t,\ty="<<tmp_y<<endl;	
}
 
NuageDePoints::~NuageDePoints()
{
delete [] T;
cout<<"supprimer\t"<<endl;
} | 
 
voici mon main : 
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 |  
#include "NuageDePoints.h"
int main()
{
	Point p(2,4);
	Point a(3,2);	
//	monpoint.Norme(monpoint,second);
//	monpoint.testEgual(second);
//	toto.barycentre();
     NuageDePoints newnuage(5);
     NuageDePoints newnuage2(6);
     newnuage.getNuage();     
     newnuage2=newnuage+a;
     newnuage2.getNuage();
     newnuage= newnuage2 -a ;
     newnuage.getNuage();   
 
} | 
 
et à l'éxecution il me met sa à la fin ! :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 
 |  
 
e********@@**-***-**% test
point1	6,1
point2	2,1
point3	10,5
point4	8,5
point5	10,2
supprimer	
point1	6,1
point2	2,1
point3	10,5
point4	8,5
point5	10,2
point6	3,2
supprimer	
point1	6,1
point2	2,1
point3	10,5
point4	8,5
point5	10,2
*** glibc detected *** test: double free or corruption (fasttop): 0x08b8c070 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6(+0x6b321)[0xb74d9321]
/lib/i686/cmov/libc.so.6(+0x6cb78)[0xb74dab78]
/lib/i686/cmov/libc.so.6(cfree+0x6d)[0xb74ddc5d]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb76b5721]
/usr/lib/libstdc++.so.6(_ZdaPv+0x1d)[0xb76b577d]
test[0x804957d]
test[0x8049a78]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xb7484c76]
test[0x8048881]
======= Memory map: ========
08048000-0804b000 r-xp 00000000 00:17 52059210   /amd/ladyburn/ubs/ladyburn/home.1/1/e0800401/Mes documents/L3/Semestre 5/INF1508C++/TP05/test
0804b000-0804c000 rw-p 00002000 00:17 52059210   /amd/ladyburn/ubs/ladyburn/home.1/1/e0800401/Mes documents/L3/Semestre 5/INF1508C++/TP05/test
08b8c000-08bad000 rw-p 00000000 00:00 0          [heap]
b7300000-b7321000 rw-p 00000000 00:00 0 
b7321000-b7400000 ---p 00000000 00:00 0 
b746d000-b746e000 rw-p 00000000 00:00 0 
b746e000-b75ae000 r-xp 00000000 08:03 331787     /lib/i686/cmov/libc-2.11.2.so
b75ae000-b75af000 ---p 00140000 08:03 331787     /lib/i686/cmov/libc-2.11.2.so
b75af000-b75b1000 r--p 00140000 08:03 331787     /lib/i686/cmov/libc-2.11.2.so
b75b1000-b75b2000 rw-p 00142000 08:03 331787     /lib/i686/cmov/libc-2.11.2.so
b75b2000-b75b5000 rw-p 00000000 00:00 0 
b75b5000-b75d2000 r-xp 00000000 08:03 331322     /lib/libgcc_s.so.1
b75d2000-b75d3000 rw-p 0001c000 08:03 331322     /lib/libgcc_s.so.1
b75d3000-b75d4000 rw-p 00000000 00:00 0 
b75d4000-b75f8000 r-xp 00000000 08:03 331754     /lib/i686/cmov/libm-2.11.2.so
b75f8000-b75f9000 r--p 00023000 08:03 331754     /lib/i686/cmov/libm-2.11.2.so
b75f9000-b75fa000 rw-p 00024000 08:03 331754     /lib/i686/cmov/libm-2.11.2.so
b75fa000-b76e3000 r-xp 00000000 08:03 14850      /usr/lib/libstdc++.so.6.0.13
b76e3000-b76e7000 r--p 000e9000 08:03 14850      /usr/lib/libstdc++.so.6.0.13
b76e7000-b76e8000 rw-p 000ed000 08:03 14850      /usr/lib/libstdc++.so.6.0.13
b76e8000-b76ef000 rw-p 00000000 00:00 0 
b770a000-b770d000 rw-p 00000000 00:00 0 
b770d000-b770e000 r-xp 00000000 00:00 0          [vdso]
b770e000-b7729000 r-xp 00000000 08:03 331489     /lib/ld-2.11.2.so
b7729000-b772a000 r--p 0001a000 08:03 331489     /lib/ld-2.11.2.so
b772a000-b772b000 rw-p 0001b000 08:03 331489     /lib/ld-2.11.2.so
bff0a000-bff1f000 rw-p 00000000 00:00 0          [stack]
Abort | 
 
je ne sait c'est due à quoi , aucune erreur de complilation , il exécute bien et au moment de détruire sa plante ! ...:calim2:
merci d'avance :D