Je suis entrain de travailler dans mon projet de thèse et j'éprouve une difficulté énorme quant à la libération de la mémoire de certaines matrices ce qui provoque un arrêt du programme ou au moins un ralentissement du système.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Comment faire pour libérer la mémoire d'une matrice de structures contenant des listes chainées, d'autres matrices, des entiers ...
cela suppose que je débute par les listes chainées, les autres matrices .. incluses dans la structure et puis devrai je terminer par la structure principale!!. Bref, y a t il une stratégie générale que je peux adopter, merci
Dans ce genre de cas, la startégie c'est de libérer en premier les éléments alloués en dernier.
Après dans certains cas tu pourras factoriser certaines désallocation.
Pour une liste chainée il faut par contre libérer les éléments un à un car l'emplacement mémoire n'est pas contigue.
C'est l'intéret du C++ d'avoir introduit la notion de desctructeur. Ca évite ce genre de problème. A défaut, faut seulement que tu fasses des fonctions qui s'occupent de nettoyer une liste chaine, une autre qui s'occupe de nettoyer une marice.
La fonction de nettoyage d'une liste, s'occupera d'appeler celle qui nettoye les matrices. Ya pas vraiment de difficulté. Suffit de libérer le conteneur principal en premier. Et si tes fonctions de nettoyage sont correctes, tous se libèrera automatiquement.