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 Point.h : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Class Point { private : long x,y; public: Point(void); ~Point(void); }
Code main.cpp : 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
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
Partager