OVH Cloud OVH Cloud

[VC++]Memory assertion avec std::vector

1 réponse
Avatar
Alex
Bonjour,

J'ai un probleme avec l'utilisation des vectors. Le débugger me dit qu'il y
a un probleme de mémoire... Si par hasard vous aviez la gentillsesse de
m'aider car je coince depuis quelques heures :( Merci !

Voici mon code :

Dans exemple.h je déclare un type :

typedef MyType struct
{ int one; int two};

Dans exemple.cpp je fais cela :

void main(void)
{
std::vector<MyType> toto; // toto est un vector de type MyType
toto.reserve(10); // Reserve 10 emplacements pour toto

PlayWithToto(&toto); // Utilise une fonction en passant un
pointeur de toto

toto.clear(); // Libere la mémoire réservée pour toto

} <= C'est en sortant de cette fonction que j'ai un message d'erreur
(meme sans appeler toto.clear())

void PlayWithToto(std::vector<<MyType>> *titi)
{
MyType temp;
temp.one = 1;
temp.two = 2;

titi->push_back(temp); // J'empile un element de type MyType dans le
vector toto via son pointeur
}




--
---------------------------------------------------------------------------
Envie de déco ? http://www.decoetalage.net

1 réponse

Avatar
Etienne Rousee
"Alex" a écrit ...
Voici mon code :

Dans exemple.h je déclare un type :

typedef MyType struct
{ int one; int two};



struct MyType
{
int one;
int two;
};

void PlayWithToto(std::vector<MyType> *); // prototype

Dans exemple.cpp je fais cela :

void main(void)
{
std::vector<MyType> toto; // toto est un vector de type MyType
toto.reserve(10); // Reserve 10 emplacements pour toto

PlayWithToto(&toto); // Utilise une fonction en passant un
pointeur de toto

toto.clear(); // Libere la mémoire réservée pour toto

} <= C'est en sortant de cette fonction que j'ai un message d'erreur
(meme sans appeler toto.clear())

void PlayWithToto(std::vector<<MyType>> *titi)



void PlayWithToto(std::vector<MyType> *titi)

{
MyType temp;
temp.one = 1;
temp.two = 2;

titi->push_back(temp); // J'empile un element de type MyType dans


le
vector toto via son pointeur
}