Bêtement, je pensais que c'était grosso-modo une structure comprenant un bloc mémoire (avec malloc), la taille réelle, la taille occupée, des pointeurs vers le début et la fin.
Petit exemple de code :
#include <vector> class toto { public: std::vector<int> tata; }; int main(void) { toto titi; titi.tata.push_back(3); toto *tutu = new toto(); tutu->tata.push_back(3); delete tutu; return 0; }
Ça compile avec les options standards (-Wall -Wextra -pedantic), et valgrind ne me dit rien quand je l'exécute (no leaks are possible).
Comment se fait-il qu'il n'y ait pas besoin d'initialiser le vecteur et le bloc mémoire ? L'initialisation se fait-elle automatiquement ?
Comment se fait-il que valgrind ne râle pas alors que je n'ai pas utilisé clear ?