我在C++代码时遇到了问题,在这部分代码的某个地方丢失了内存。我不擅长C++,请帮忙。我想创建数组队列,但此代码中存在一些错误。
const size_t _queueSize;
size_t _queueBack;
size_t width;
size_t height;
u_char** _history;
....
if (_queueBack) {
for (int i = _queueBack; i > 0; --i) {
_history[i] = _history[i-1];
}
}
if (_queueSize == _queueBack) {
delete[] _history[_queueSize + 1];
_history[0] = new u_char [height*width];
} else {
++_queueBack;
}
附言我无法使用 STL,我需要快速队列。
您可以使用 valgrind 检查泄漏,内存泄漏可以在代码中的其他地方产生,并在该点"爆炸"。
顺便说一句,我坚信您应该使用 STL,如果您需要某种内存实现的特殊要求,您可以拥有自己的分配器。我怀疑你能不能找到比STL更好的解决方案,这是人们最常见的错误或传说之一,STL并不慢,它是你使用它的方式。