[tableau] Delete[] impossible sur tableau d'une classe
Bonjour a tous,
Je n'arrive pas a comprendre la raison qui fait que le compilateur plante lorsque je cherche a désallouer la mémoire.
J'ai voulu créer un tableau d'objet (volontairement sans utiliser la classe vector), pour cela je crée un pointeur sur ma classe et je la dimensionne sans probleme, mais au moment de la suprrimer le delete plante sans que j'en saisisse la raison...
Voici le code:
Code:
1 2 3 4 5 6 7 8
| Class Point
{
private :
long x,y;
public:
Point(void);
~Point(void);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include "Point.h"
#include <string>
using namespace std;
int main(void)
{
Point * pMap;
long lSize;
string stErrMsg("");
if (!GetMapSize(lSize,stErrMsg))
return PromptErrMsg(stErrMsg);
pMap=new Point[lSize];
if (pMap==NULL)
return 0;
/* tout un code dummy pour initialiser le tableau de points
et faire ce que je veux avec */
delete[] pMap;
return 1;
} |
Je ne comprends pas pourquoi mon code est rejeté. =(
En débuguant en pas a pas, j'ai bien que pMap est différent de NULL avant le delete. Il me semble être cohérent avec l'idée d'allocation et désallocation et surtout être syntaxiquement correct.
Juste pour avancer un peu j'ai taché de remplacer delete[] par delete et ça plante de la même manière.
Est ce que quelqu'un aurait une idée de l'origine de mon erreur? =(
Merci pour vos réponses (ou du moins vos lectures)
E.G