Strutture dati semplici, ad esempio elenchi collegati, in cui il puntatore "successivo" è un puntatore intelligente. Quando il nodo principale viene eliminato, il puntatore intelligente per 'successivo' entra in gioco e esegue un'eliminazione ricorsiva. Per una lunga lista, questo rapidamente salta la pila.Il puntatore intelligente salta la pila a causa della cancellazione ricorsiva
Ho dovuto tornare indietro per sostituire questi puntatori intelligenti con semplici puntatori grezzi. Mi sto perdendo qualcosa qui?
'soffia la pila'? puoi elaborare per favore. – Flexo
Quasi sicuramente non è colpa del puntatore intelligente. Mostraci un codice, ci sarà un bug nell'implementazione. In ogni caso, l'eliminazione dell'elenco completo dovrebbe avvenire per iterazione, non per ricorsione, quindi dovrebbe richiedere uno spazio di stack costante. –
@Kerrek: presumibilmente, il distruttore del puntatore intelligente cancella il pointee, che darà una ricorsione se il pointee contiene un altro puntatore intelligente. Non vedo come potrebbe essere implementato il puntatore intelligente per evitarlo. –