Удаление динамического массива ссылок

Для работы с 2 веточным древом добавил функцию поиска по значению,при попытке удаления памяти крашится

int Tree::find(Branch *curr,int data,int level = 1,Branch **arr = new Branch*[1],int count = 0) {
    if(curr->left != nullptr || curr->right != nullptr){arr[level - 1] = curr;exp(arr, level, level);}
    if (curr->left != nullptr)count += find(curr->left, data, level + 1,arr);
    if (curr->right != nullptr)count += find(curr->right, data, level + 1,arr);
    if (curr->data == data) {
        cout << level << ":";
        for (int f = 0; f < level - 1; f++)cout << arr[f] << "->";
        cout << curr->data << endl; 
        count++;
    }
    delete[] arr[level - 1];//само удаление
    return count;
} 

Массив удаляется не полностью из-за надобности в последующих уровнях. Сам массив arr представляет собой последовательный набор ссылок на елементы древа для визуальной последовательности при выводе и понимая где находится ветвь. level - переменная указывающая на уровень древа. Branch *curr - ссылка на объект(элемент) дерева


Ответы (0 шт):