我的代码似乎有效(由于上述错误,我没有尝试过使用大型数据集)。
代码:
#include <iostream>
#include <queue>
#include <stxxl/queue>
int main()
{
//queue<int> q; //this works
stxxl::queue<int> q; //does not work
for (int i = 0; i<100; i++) {
q.push(i);
}
std::cout << "done copying" << std::endl;
while (q.empty() == false) {
std::cout << q.front() << std::endl;
q.pop();
}
std::cout << "done poping" << std::endl;
return 0;
}
我的简单.stxxl
很简单:disk=./testfile,0,syscall
但我的错误是:
stackexchangeexample(3884) malloc: *** error for object 0x101c04000: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
The program has unexpectedly finished.
我不确定如何解决它,在这种情况下我需要释放内存吗?如果这真的很基础,我还在学习 c++ 很抱歉(这只发生在我使用 stxxl 队列时)。