std::bad_alloc Exception projet VCL
lu,
en essayant d'allouer et de désallouer de la memoire dans une TForm (VCL donc) je tombe sur une exception std::bad_alloc.
En farfouillant, je n'ai pas trouvé la cause, j'ai donc créé un projet console sans la VCL et la ça passe nikel.
J essaye d'allouer 100 M dans la memoire (environ) et je crée 2 unsigned char que je ne supprimerai qu'à la fin du test.
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 27
|
unsigned char *truc = NULL,**truc2 = new unsigned char*[100000];
for(int x=0; x<100000; x++)
{
try
{
truc = new unsigned char[100000000];
truc2[x] = new unsigned char[2];
delete[] truc;
truc = NULL;
}
catch(...)
{
int bidul = 2;
}
}
for(int x=0; x<100000; x++)
{
delete[] truc2[x];
}
delete[] truc2; |
l'erreur se produit vers la 21 allocation de <<truc>> chez moi.
Si vous avez une explication, je suis preneur.