Fermer2
flankerLe 17/04/2011 à 23:08
Bon, je suis un peu un nioob en C++, mais je me pose tout de même quelques questions sur l'implémentation des vector.
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 ?