这是违规行:
Texture *texture = new Texture (...);
我在这里从 bad_alloc 收到:
void *__CRTDECL operator new(size_t size) _THROW1(_STD bad_alloc)
{ // try to allocate size bytes
void *p;
while ((p = malloc(size)) == 0)
if (_callnewh(size) == 0)
{ // report no memory
static const std::bad_alloc nomem;
_RAISE(nomem);
}
return (p);
}
大小约为 28 字节
到目前为止,该程序已经在 32 位系统的堆上放置了大约 2 MB(重新启动),在此之前只有大约 20 个东西被分配在堆上,所以我知道没有堆损坏。
我很混乱...