Я тестирую очень простую реализацию кучи, добавляя и удаляя множество (50 тыс.) Случайных элементов. Однако я никогда не удаляю элементы, так как происходит SIGABRT.
Я пытался инициализировать массив целых чисел с нулями, но это не помогло.
int Heap::pop() {
if (size == 0) {
std::cerr << "The heap is empty.\n";
return 0;
}
if(size == 1){
int key = heap[0];
heap = new int[0];
size = 0;
return key;
}
else {
int key = heap[0];
int *temp;
temp = heap;
temp[0] = temp[size - 1];
heap = new int[size - 1]; //GDB marks this line
for (int i = 0; i < size - 1; i++)
heap[i] = temp[i];
heapifyDown(0);
size--;
return key;
}
}
Кажется, что происходит сбой, когда он собирается инициализировать массив размером 49992.