Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3322 connectés 

 


Dernière réponse
Sujet : [C++] New/Delete
BifaceMcLeOD De rien !  :sol:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
BifaceMcLeOD De rien !  :sol:
aqwsezsxdr 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  :jap:
BifaceMcLeOD Et un

Code :
  1. #define delete fonction(__FILE__,__LINE__); delete


ça marche ? :??:
Je sais, là on commence à faire dans le pas très subtil :sarcastic: , mais bon, j'essaie...

aqwsezsxdr 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]

BifaceMcLeOD Euh... Renommer la fonction delete qui est appelée par ta macro.
J'ai bon ?
aqwsezsxdr 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 ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)