Bonjour à tous,
En plein apprentissage du C++ j'en arrive au chapitre sur la gestion de la mémoire où l'on a introduit la classe allocator incluse dasn <memory>. On donne quelques fonctions de cette classe et j'ai du mal à comprendre la différence entre deux de ces fonctions.
voici à quoi ressemble une version simplifiée de cette classe :
Quel est la différence entre deallocate et destroy au niveau de la mémoire ? D'après ce que je semble avoir compris, deallocate libère la mémoire pointé par p = et destroy libère les emplacements mémoire aux adresse où se trouve les pointeurs c'est à dire &p[i]. C'est bien ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 template<class T> class allocator { public: // ... T* allocate(int n); // allocate space for n objects of type T void deallocate(T* p, int n); // deallocate n objects of type T starting at p void construct(T* p, const T& v); // construct a T with the value v in p void destroy(T* p); // destroy the T in p };
Merci d'avance
Partager