D�sallocation m�moire C++
Bonjour � tous,
Je me permets de vous contacter car j'ai une question � vous poser concernant l'allocation et la d�sallocation en C++
Je dispose d'une classe basique :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Test
{
private:
char * pointeur;
public:
Test( const char * chaine )
{
pointeur = new char[ 10 ];
strcpy( pointeur, chaine );
}
~Test()
{
delete[] pointeur;
pointeur = NULL;
}
void show()
{
std::cout << pointeur <<std::endl;
}
}; |
et ma fonction main :
Code:
1 2 3 4 5 6 7 8 9 10
| int main()
{
Toto t1("ooo");
Toto t2("aaaa");
Toto t3 = t2;
t3.show();
return 1;
} |
L'erreur que j'obtiens dans la console est la suivante :
a.out(6947) malloc: *** error for object 0x10de008d0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Mon erreur provient du destructeur quand je fais delete[] pointeur;
Je ne comprends pas pourquoi alors que j'ai bien fais l'allocation � l'aide de new[] utiliser delete[] devrait donc �tre la solution...
Merci pour votre aide :/
MacInTouch.