SecureArray

Un article de Lightness1024!.


Sommaire

[modifier] Présentation

SecureArray est une classe template pour le langage C++ qui a pour but d'encapsuler les opérations d'allocation et de libération de mémoire de base du C++ new[] et delete[].

Elle permet de créer des tableaux qui seront ainsi à accès sécurisé, et à protection contre les fuites de mémoire. En cas d'accès invalide, elle utilise le mécanisme des exceptions pour prévenir le programmeur des problèmes.

La classe à été programmée par les membres du GCN et mise sous licence CeCILL.

[modifier] Code source

[modifier] Documentation

HTML en ligne :
version en ligne

Archive tar :
http://lightness1024.free.fr/documentation.tar (format HTML)

[modifier] Exemple d'utilisation simple

/*** exemple ***/
 
#include "SecureArray.h"
 
int main(void)
{
    SecureArray< int > tab(3);
    // L'utilisation de blocs try-catch est facultative, votre c-run-time
    // peut récupérer les exceptions non "catchées", mais ne les traitera pas.
    try
    {
        tab[0] = 50;
        tab[1] = -80;
        tab[2] = 27;
        tab.Resize(10);  // preserve les données
        tab[3] = 10;
        ...             // etc
    }
    catch (OutOfRangeException e)  // objet de l'exception
    {
        char b[256];   // pour récupérer la chaine d'erreur de l'exception, il faut un buffer
        e.GetErrorStringPtr(b, 256);  // formattage et copie de la chaine dans b
        ... // traitement, affichage de l'erreur...
    }
    return 0;
}

[page de dscussion]Discuter:SecureArray

--Tof 15 aoû 2005 à 19:49 (CEST) Je ne jugerai pas de la qualité du template, étant donné que je ne suis pas codeur, par contre je trouve l'initiative sympathique.

--Lightness1024! 15 aoû 2005 à 21:49 (CEST)
Voui, cela peut servir comme ressource pour les C++eurs qui ne connaissent pas STL ou qui n'aiment pas. et pour les débutants cela leur évitera nombre de prise de tête avec les seg-fault, les access violation, les memory leaks, les corruptions de pile. Je milite pour pusher l'utilisation de cette classe sur le CGN :)



Les commentaires ci-dessus ont été laissés par des visiteurs.
Le gestionnaire du site n’est pas responsable de leur contenu. This site's operators can not take responsibility for the content of such comments.