C++ 队列内存泄漏

c++ queue memory leak

本文关键字:泄漏 内存 队列 C++      更新时间:2023-10-16

我在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并不慢,它是你使用它的方式。