Мой код работает (я не пробовал его с большими наборами данных из-за вышеуказанной ошибки).`указатель освобождения не был назначен` при использовании stxxl queue
Код:
#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).
Вы удаляли предыдущие версии этого вопроса и отправляли его повторно? Я уверен, что видел это несколько раз сегодня. – Blastfurnace
@Blastfurnace да извините. Я сделал это сегодня, так как кто-то отправил комментарий (в прошлый раз мне посоветовали решить другое предупреждение, которое я получал, поэтому я удалил вопрос, изучая, как настроить. Stxxl). Если я могу решить это сам (или указал на правильное направление), я не хотел тратить время, чтобы прочитать его. – Lostsoul
Вы можете отредактировать свой вопрос, а не удалить его, и перепрограммировать измененную версию. – luke