New/Delete [C++] - Programmation
Marsh Posté le 18-09-2001 à 21:53:52
Euh... Renommer la fonction delete qui est appelée par ta macro.
J'ai bon ?
Marsh Posté le 18-09-2001 à 22:17:37
nan, c'est pas bon du tout
apres le passage du preprocesseur on aurait avec une autre fct :
#define delete fonction(__FILE__,__LINE__)
int *a = new int;
delete a;
---->
int *a = new int;
fonction("nom de fichier source",noLigne) a; //gros probleme
en plus, je peux pas m'amuser à remplacer les quelques centaines de delete dans tout mon projet....
avec le new ca passe,
#define new new(__FILE__,__LINE__)
est remplace dans une alloc par
int *a = new("nom de fichier source",noLigne) int; //c'est un operateur admis par le compilo
[edtdd]--Message édité par aqwsezsxdr--[/edtdd]
Marsh Posté le 18-09-2001 à 22:59:10
Et un
Code :
|
ça marche ?
Je sais, là on commence à faire dans le pas très subtil , mais bon, j'essaie...
Marsh Posté le 18-09-2001 à 23:09:29
arf oui ca marche la, j'y ai meme pas pensé comme quoi faut pas toujours chercher tres loin (je m'en fous que le code soit pas propre, c'est juste pour traquer les alloc et desalloc)...
thnx
Marsh Posté le 18-09-2001 à 20:40:33
Je dois tracer des fuites de memoire et je peux pas utiliser des outils tel que purify.
J'ai donc surcharge (un peu comme M$ le fait) le new par
void * operator new (size_t size, char *fileName, int ligne)
{
//log du fileName et de la ligne
.....
}
avec un #define new new(__FILE__,__LINE__)
ca marche super bien, mais j'ai pas reussi à faire la meme chose avec le delete :
#define delete delete(__FILE__,__LINE__)
est rejette par le compilo (gcc, sunpro, visual)
y'a-t-il une solution simple ?