c++ - delete qtabwidget -
my programme keeps crashing returncode 0. cause somewhere in qtabwidget can't find error.
qtabwidget *layout_tabs; // create tabs void myclass::fill_tabs(void) { kill_tabs(); // remove old tabs layout_tabs = new qtabwidget(); // programme adds content few tabs, like: // widgets created, content created, set layout, set widget.. layout_tabs->addtab(widget, "description"); layout_tabs->addtab(widget2, "description2"); layout_tabs->show(); } void myclass::kill_tabs(void) { if(layout_tabs==nullptr) return; layout_tabs->hide(); qwidget *window; ( int i=layout_tabs->count()-1; i>=0; --i) { window = layout_tabs->widget(i); // remember widget layout_tabs->removetab(i); // remove tab free(window); // remove widget } free(layout_tabs); // remove qtabwidget layout_tabs=nullptr; }
the filltabs() function used few times. old tabwidget destroyed , new created. not matter if don't delete tabwidget, remove tabs. programme still exits returncode 0.
you phone call free(layout_tabs)
allocate operator new()
. should deallocate delete layout_tabs
instead. don't see how window
variable allocated should check if should deallocated operator delete()
, or if qtabwidget
owns memory (i.e. if responsible managing memory).
c++ qt4.8 qtabwidget
No comments:
Post a Comment