![]() |
1
1
bad_alloc可能意味着您的可用内存不足(因为您说sizeof(cimage)==28,所以您很可能是在一个紧循环或无限循环中完成的)。这也可能意味着您已经破坏了freestore,尽管以前的内存行为很顽皮,但它只是在下一个分配/释放周期捕获到它。一个好的调试会话有助于区别。 |
![]() |
2
2
当new抛出bad_alloc时,这意味着它无法分配请求的大小。常见的原因是使用的垃圾值远远大于预期值。(实际上也可能会耗尽内存。)对于代码,sizeof(cimage)是 真巨大 或者bad_alloc是从其他新表达式抛出的。 看起来您需要一个构造函数而不是创建映像,还可能需要一个带有工厂的派生类(每个映像类型一个),而不是存储数据类型。 |
![]() |
3
2
如果您需要一个带有变量bpp的原始数据缓冲区,可以考虑使用
|
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 6 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 6 月前 |
![]() |
tTt · 使用堆栈中的值重新分配指针 7 月前 |
![]() |
manuel · 现代C中空指针的替代方案++ 8 月前 |