Bonjour � tous,
Je veux surcharger tous mes op�rateurs new pour pouvoir stocker dans une structure toutes les allocations de m�moire. Bien �videment pour qu'il y ai un int�r�t, je fais la m�me chose avec delete.
Bref venons au fait, j'ai trouv� pas mal de code identique � ce que j'ai pr�par�:
Tel quel, j'ai l'erreur 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 dans le .h #include <cstddef> void* operator new (size_t sStruct, const char* sFichier, int iLigne); void* operator new [] (size_t sStruct, const char* sFichier, int iLigne); //#define new new(__FILE__,__LINE__) #define new DEBUG_NEW #define DEBUG_NEW new(__FILE__,__LINE__) dans le .cpp void * operator new (size_t sStruct, const char* cFichier, int iLigne) { malloc ... blablabla } void* operator new[] (size_t sStruct, char* cFichier, int iLigne) { blablabla ... free }
Si j'enl�ve les param�tres const char* sFichier et int iLigne, je n'ai aucun probl�me particulier de compilation. Toutefois, pour que mon code ai un int�r�t il faut absolument que je vois o� sont allou�s les �l�ments.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 g++ -g -D_LINUX -I/home/xxx/Fonctions/ -I/usr/dt/include -I/usr/openwin/include -c -o Out/memory.cpp.o /home/xxx/Fonctions/memory.cpp > memory.cpp:4: erreur: declaration of 'operator new' as non-function
Suite � quelques recherches sur le net, j'avais rajout� #include <cstddef>. De plus, j'ai trouv� de nombreuses r�f�rences � #define new DEBUG_NEW
#define DEBUG_NEW new(__FILE__,__LINE__)
Ca devrait fonctionner comme partout. Mais pas chez moi. Pourquoi et que changer?
D'avance, Merci
PS: Je suis sous Unix: gcc-4.1.2
Partager