C

Articoli tecnici organizzati per gruppo funzionale.

206 schede11 gruppiPagina 23 di 26

Smart Pointer e Gestione Memoria

8 nella pagina

Errore C++: Double Free per Puntatore Raw Condiviso Erroneamente

Assegnare lo stesso puntatore nativo 'T *raw = new T;' a due istanze indipendenti di 'std::shared_ptr' anziché usare copy o 'std::make_shared' crea due blocchi di controllo separati, provocando una doppia deallocazione (double free) alla loro distruzione.

DOUBLE_DELETE_SMART_PTR
→

Errore C++: Ritenzione della Memoria con std::make_shared e std::weak_ptr

'std::make_shared' alloca l'oggetto e il blocco di controllo dei riferimenti in un unico blocco contiguo di memoria; sebbene l'oggetto venga distrutto quando lo shared_ptr scade, la memoria fisica non può essere deallocata finché esiste anche un solo 'std::weak_ptr' attivo.

MAKE_SHARED_WEAK_PTR_OVERHEAD
→