Classe template tableaux sécurisés à allocations automatiques

Soyez le premier à donner votre avis sur cette source.

Vue 5 522 fois - Téléchargée 592 fois

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 / Exemple :


// 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.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de cs_pepet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.