begin process at 2012 05 27 19:30:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > SURVEILLANCE DES ALLOCATIONS MEMOIRE [C]

SURVEILLANCE DES ALLOCATIONS MEMOIRE [C]


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :22/01/2003 Date de mise à jour :22/01/2003 16:50:19 Vu / téléchargé :4 082 / 261

Auteur : jcecchi

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Quelques petites fonctions pour verifier que votre programme n'a pas de fuites memoires.
Le principe est d'ecrire dans un fichier toutes les allocations memoire effectuees ainsi que toutes les liberations.
Ensuite le programme jalloc_verif analyse le fichier journal et vous dit s'il y a des oublis.
Tout est dans le zip.

Source

  • /* Extrait de jalloc.c */
  • void* jmalloc_d(size_t size, const char* sFile, int iLine)
  • {
  • void* temp;
  • /* Allocation memoire */
  • temp = malloc(size);
  • if(temp != NULL)
  • /* Ajout d une entree dans le journal */
  • /* 1 pour allocation memoire */
  • fprintf(pAllocFile, "1\n%p\n%s\n%d\n", temp, sFile, iLine);
  • return temp;
  • }
  • void jfree_d(void* object, const char* sFile, int iLine)
  • {
  • if(object != NULL)
  • {
  • /* Ajoute une entree dans le fichier journal */
  • /* 0 pour liberation memoire */
  • fprintf(pAllocFile, "0\n%p\n%s\n%d\n", object, sFile, iLine);
  • /* Liberation de la memoire */
  • free(object);
  • }
  • }
/* Extrait de jalloc.c */

void* jmalloc_d(size_t size, const char* sFile, int iLine)
{
	void* temp;

	/* Allocation memoire */
	temp = malloc(size);

	if(temp != NULL)
		/* Ajout d une entree dans le journal */
		/* 1 pour allocation memoire */
		fprintf(pAllocFile, "1\n%p\n%s\n%d\n", temp, sFile, iLine);

	return temp;
}

void jfree_d(void* object, const char* sFile, int iLine)
{
    if(object != NULL)
    {
		/* Ajoute une entree dans le fichier journal */
		/* 0 pour liberation memoire */
	    fprintf(pAllocFile, "0\n%p\n%s\n%d\n", object, sFile, iLine);

		/* Liberation de la memoire */
	    free(object);
    }
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip DEFINITION DES OPERATEURS DANS UNE CLASSE (VC++)
Source avec Zip Source avec une capture CREATION TOOLBAR ET STATUSBAR EN WIN32 [VC++ 7.0]
Source avec Zip Source avec une capture CONVERTISSEUR EURO EN WIN32 (VC++)

 Sources de la même categorie

Source avec Zip Source avec une capture EVAL EXPRESSION COMPLEXE EN 15 LIGNES DE CODE par yann_lo_san
Source avec Zip SCHEDULER RR FIFO par yvesB87
Source avec Zip ALGORITHMES RÉCURSIFS VS ALGORITHMES ITÉRATIFS par yvesB87
Source avec Zip Source avec une capture C++ FORMAT D'IMAGE AVEC QT par pop70
Source avec une capture EXEMPLE DE POINTEURS DE FONCTION par pop70

Commentaires et avis

Commentaire de GoldenEye le 23/01/2003 16:31:18

Potentiellement très utile si c'est intégré à un programme de grande importance Question: existe t'il des logiciels de débug qui font de telles vérifications (couplé avec VC++ de préférence) ?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales