为什么malloc总是返回NULL

Buz*_*uzz 6 c c++ windows directx memory-management

我的开发环境是VS2008,DX9,Windows XP.我尝试在内存不足的情况下添加保护处理.当malloc返回NULL时,我会将一些资源写入磁盘,并释放内存中的资源.

但有时,malloc总是返回NULL,即使我释放了大部分资源和进程内存使用量,并且任务管理器中的VM大小只有800MB.

我认为使用malloc分配88个字节应该没问题,其中进程内存使用量仅为800MB.但malloc总是返回NULL.

这可能是内存碎片吗?它看起来不像那样,因为进程内存使用量不是太多.

alt text http://i.imagehost.org/0267/Snap2.jpg

0xC*_*ACE 2

你提到了内存碎片,这肯定是我的第一个猜测。尝试下载此应用程序。它称为“地址空间监视器”,应该能够向您显示是否存在碎片问题。