Accueil > > > CLASSE TEMPLATE TABLEAUX SÉCURISÉS À ALLOCATIONS AUTOMATIQUES
CLASSE TEMPLATE TABLEAUX SÉCURISÉS À ALLOCATIONS AUTOMATIQUES
Information sur la source
Description
(Ce code est uniquement C++ et sous licence CeCILL) SecureArray est une classe template qui remplace std::vector pour ceux qui ne peuvent pas voir la STL en peinture :) Son code à été largement testée, sa force est d'être stable et d'éviter les fuites mémoires grace aux mécanismes de destruction du C++. La gestion des erreurs se fait grâce aux exceptions. L'avantage est d'éviter tout seg fault, et d'éviter les allocations manuelles. La classe est basée sur new[] / new(placement) et delete[]
Source
- // le ZIP contient la documentation
- // toutes les fonctions sont documentées, vous devez copier le module de la classe dans
- // votre projet pour l'utiliser.
- // cette classe peut même être utile au debuging de programmes importés du C.
- // si par exemple vous avez:
- int main(void)
- {
- int* p;
- p = malloc(sizeof(int) * 40);
- ...
- p[var] = valeur; // var peut prendre une valeur causant un seg fault si < 0 ou > 39
- ...
- free(p);
- return 0;
- }
- // remplacez les lignes de déclaration et d'allocation par:
- int main(void)
- {
- SecureArray< int > p;
- ...
- p[var] = valeur; // si var prend une mauvaise valeur, une exception est lancée
- ...
- //free(p); inutile, car l'objet p est automatiquement détruit avec le return
- return 0;
- }
// le ZIP contient la documentation
// toutes les fonctions sont documentées, vous devez copier le module de la classe dans
// votre projet pour l'utiliser.
// cette classe peut même être utile au debuging de programmes importés du C.
// si par exemple vous avez:
int main(void)
{
int* p;
p = malloc(sizeof(int) * 40);
...
p[var] = valeur; // var peut prendre une valeur causant un seg fault si < 0 ou > 39
...
free(p);
return 0;
}
// remplacez les lignes de déclaration et d'allocation par:
int main(void)
{
SecureArray< int > p;
...
p[var] = valeur; // si var prend une mauvaise valeur, une exception est lancée
...
//free(p); inutile, car l'objet p est automatiquement détruit avec le return
return 0;
}
Conclusion
J'ai récemment refait toute la documentation en HTML :) j'y ai passé du temps donc lisez la ca vous éviteras de vous perdre dans le .h
le zip contient un répertoire avec un exemple de projet MS Visual Studio 2003.
Historique
- 15 août 2005 17:46:53 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
- 15 août 2005 17:49:16 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
- 15 août 2005 17:49:34 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
- 15 août 2005 17:49:53 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
- 15 août 2005 17:53:55 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
- 15 août 2005 17:55:01 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
- 15 août 2005 17:56:14 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
j'ai passé le code sous licence CeCILL plutot que sous simple droit d'auteur.
- 15 août 2005 17:56:38 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
j'ai passé le code sous licence CeCILL plutot que sous simple droit d'auteur.
- 15 août 2005 17:59:00 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
(j'ai du utiliser des appels explicite aux destructeurs et faire des placement new).
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
j'ai passé le code sous licence CeCILL plutot que sous simple droit d'auteur.
- 15 août 2005 18:06:38 :
- J'avais certaines lenteurs à utiliser Add() et Remove() j'ai donc implémenter un système d'utilisation de mémoire de réserve en extra pour accélérer les opérations de redimensionnement et d'ajout/insertion d'élements.
(j'ai du utiliser des appels explicite aux destructeurs et faire des placement new).
Mon programme s'executait 30 fois plus vite ensuite.
Tout à été documenté :)
J'ai rendu la classe compatible ANSI car auparavant elle utilisait des fonctions de la SDK Win32, ce qui n'est plus le cas.
j'ai passé le code sous licence CeCILL plutot que sous simple droit d'auteur.
- 05 août 2006 11:59:25 :
- mots cles
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
template? [ par payen ]
Salut a tous,je programme actuellement une bibli de traitement d'images en C++, et j'ai un p'tit souci. En fait, j'ai cree une classe image qui contie
[C++ 7(.NET)]Création d'un vector ou tableau Object [ par sfouilloux ]
bjr,comment créer un tableau d'objet ou un vecteur en c++ managé sous VS.NET 2003.Merci
tableau [ par ToToL ]
Bonjour,j'ai un tableau créé de cette maniere :std::vector <int> Pos;et a un moment j'ai besion d'en créé un autre qui doit etre une copie de Po
STL vector et tableau [ par cybermax62 ]
j'ai une petite question sur la classe template vector. je sais que c'est possible d'initiliser un vector avec un tableau point de vue C (char[]). j'a
vector de tableau à deux élément : vector <int[2]> [ par Icarius44 ]
Bonjours tout le mondealors je voudrais faire vector <int[2]>mais ca
héritage d'une template classe comme vector [ par Urukai1 ]
bonjourje suis un newbie en cpp, et j'ai fait beaucoup de javaje souhaite faire une classe qui herite par exemple de la classe vector<T> avec te
tableau multidimentionnel en C++ [ par paskouaouch ]
Bonjour, je souhaiterais savoir s'il ya moyen de créer des tableau en C++ de dimention n (n= 3, 4, 5 ou plus...) sans utiliser double***** tab,vector&
Vector de plusieurs types [ par nisaloncaje ]
Bonjour, j'aimerais créer un tableau de type vector, mais que ce tableau puisse contenir plusieurs type d'objets mais qui héritent tous d'une meme cla
Tableau, vector, list ou array???? [ par eupeup ]
Bonjour à tous, j'ai une interrogation par rapport à l'utilisation d'un tableau... Je dois manipuler une matrice de double et de taille fixe... Sacha
Un vector résultant du tri de plusieurs vector ?? [ par WolfSpirit2a ]
Bonjour ! :) J'aimerai savoir si il est possible de trier plusieurs vector (qui auraient les mêmes membres) et de récupérer un tableau ou un autre ve
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|