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.
l'erreur se produit vers la 21 allocation de <<truc>> chez moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Si vous avez une explication, je suis preneur.
Partager