Bonjour à tous,

Je rencontre un problème d'allocation mémoire dynamique avec un programme.
Celui-ci alloue des blocs mémoires (via l'opérateur new) de petites tailles mais aussi de très gande taille (tableaux de plusieurs milliers d'objets).
Je ne pense pas qu'il y ait de fuite mémoire.

Cependant, je finis par obtenir une exception bad_alloc lors de l'allocation d'un grand tableau. Cette exception est déclenchée lorsque new ne trouve pas la place disponible pour l'objet créé.

Je pense que cela est du au fait que mon espace mémoire fini par être très fragmenté en raison du grand nombre de petits blocs alloués jusqu'au moment où il n'y a plus la place entièrement vierge suffisante pour un grand tableau. En effet, l'exception est toujours déclenchée lors de l'allocation d'un tableau et non d'un objet de petite taille.

Je me demande s'il est possible de définir 2 zones d'adresage dynamique. L'un dans lequel, j'allouerais mes objets de taille raisonables et l'autre pour les tableaux de grande taille.

Merci pour vos tuyaux et remarques en tout genre,

Arnaud