Page suivantePage précédenteTable des matières

18. Annexe E my_malloc.h

Vous pouvez récupérer tous les programmes en un seul tar.gz sur Telecharger String . Pour obtenir ce fichier, dans un butineur web, sauvez ce fichier en type 'texte'.


//*****************************************************************
// La licence de distribution est la GNU/GPL et vous devez inclure
// le nom et le mel de l'auteur dans toutes les copies
// Auteur : Al Dev    Mel : alavoor@yahoo.com
//*****************************************************************
/*
**      Dans votre fonction main() mettre -
 char p_name[1024];
 sprintf(p_name, "PROGRAM_NAME=%s", argv[0]);
 putenv(p_name);
 print_total_memsize(); // au debut
 ......
 ......
 print_total_memsize(); // à la fin
*/
/* Utilisez zap au lieu de delete pour être très propre !
** Utilisez do while pour en faire une macro robuste et éviter les erreurs
*/
#define zap(x) do { if (x) { delete(x); x = 0; } } while (0)
void *local_my_malloc(size_t size, char fname[], int lineno);
char *local_my_realloc(char *aa, size_t size, char fname[], int lineno);
short *local_my_realloc(short *aa, size_t size, char fname[], int lineno);
void local_my_free(void *aa, char fname[], int lineno);
void local_print_total_memsize(char fname[], int lineno);
#define my_free(NM) (void) (local_my_free(NM, __FILE__, __LINE__))
#define my_malloc(SZ) (local_my_malloc(SZ, __FILE__, __LINE__))
#define my_realloc(NM, SZ) (local_my_realloc(NM, SZ, __FILE__, __LINE__))
#define print_total_memsize() (void) (local_print_total_memsize(__FILE__, __LINE__))
#ifdef DEBUG  //------------> DEBUG
#else  //------------> DEBUG
#define call_check(AA, BB, CC, DD) ((void) 0)
#define call_free_check(AA, BB, CC) ((void) 0)
#define remove_ptr(AA, CC, DD) ((void) 0)
#endif //------------> DEBUG


Page suivantePage précédenteTable des matières