|
|
1
1
bad_alloc可能意味着您的可用内存不足(因为您说sizeof(cimage)==28,所以您很可能是在一个紧循环或无限循环中完成的)。这也可能意味着您已经破坏了freestore,尽管以前的内存行为很顽皮,但它只是在下一个分配/释放周期捕获到它。一个好的调试会话有助于区别。 |
|
|
2
2
当new抛出bad_alloc时,这意味着它无法分配请求的大小。常见的原因是使用的垃圾值远远大于预期值。(实际上也可能会耗尽内存。)对于代码,sizeof(cimage)是 真巨大 或者bad_alloc是从其他新表达式抛出的。 看起来您需要一个构造函数而不是创建映像,还可能需要一个带有工厂的派生类(每个映像类型一个),而不是存储数据类型。 |
|
|
3
2
如果您需要一个带有变量bpp的原始数据缓冲区,可以考虑使用
|