我正在编写一个模拟程序,我定义了一个大约544字节的结构节点。在程序中,我需要malloc
数百万个节点。每当最大数量达到近300万时,
newnode=malloc(Node)
将返回NULL。但这只需要大约250MB的内存。有人能告诉我为什么会这样,以及如何解决这个问题?
答案 0 :(得分:-1)
因为它是c ++使用new() http://www.cplusplus.com/reference/new/ 如果分配不完整。新应该抛出异常。那么你需要什么才能打印/调试异常并google它。也许这会有所帮助
如果问题相同,也请检查GCC。如果没有那么它必须是一些Visual Studio编译器特定的问题(我怀疑)