Question

Je l'attribution d'un petit nombre de types de données, la taille totale 2MB.

J'utilise un seul tas, et il fonctionne bien jusqu'à ce que j'arrive à un certain nombre d'allocations, je suis sûr de cela parce que je l'ai commenté une allocation pour plantages sur l'autre.

= quota d'espace disque? la documentation ne couvre pas les codes d'erreur pour cette fonction spécifique, j'ai brossé un tableau des applications et il y a beaucoup de mémoire allouée pour le processus. Aussi je mets un point d'arrêt de données sur le pointeur de tas, et il ne se casse pas. Le pointeur de tas est bien quand je fais un pas à travers, jusqu'à mon appel à HeapAlloc.

étrange ..

Était-ce utile?

La solution

Essayez allouer une grande partie de la mémoire (à savoir> 2 Mo) jusqu'à ce que vous obtenez l'erreur pour déterminer si le problème est le # d'objets ou de tas au total. En outre, vous êtes sûr que vous n'êtes pas plus que la mémoire allouez 2mb? Je l'ai vu cette erreur lorsque la limite de 2gb est touché, mais jamais à 2MB à moins que votre fichier d'échange est complet.

Si tout le reste échoue, redémarrage ou essayer sur une autre machine.

Autres conseils

Selon que les valeurs dans winnt.h cartes C0000017 code d'exception à STATUS_NO_MEMORY qui est l'un des exceptions HeapAlloc jetteront. Donc, vous êtes soit de mémoire ou que vous avez survolée un de vos tampons alloués et corrompu le tas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top