我正在创建一个从CMFCPropertySheet派生的属性表,它是在调用初始编辑器页面时从大型机创建的。我的问题是,当一个额外的页面被调用时,我希望为它创建一个新的选项卡。调用的每个页面都将由相同的类派生,但最大页面数未知,因此需要定义为
CEditorPage *m_editorpage[];但是编译器抱怨它使用的是一个零大小的数组。在析构函数中,我删除了在for循环中创建的从0到表中页数的页面。在post delete中,我删除了this指针。程序崩溃并在以下位置停止
delete this;如果我不使用数组,它就不会崩溃。但是因为我在每个属性页中使用相同的类页面,并且我不知道会有多少个,所以我需要使用一个大小为零的数组。无论哪种方式,我都会遇到内存泄漏。
如何在属性页中创建一个大小为零的基于CMFCPropertyPage的数组,以便在运行时添加额外的页,并在属性页关闭时执行适当的清理。在我尝试过的每个方法中,我要么崩溃,要么内存泄漏。
发布于 2013-10-22 10:42:52
尝试使用动态数组
CEditorPage *m_editorpage = new CEditorPage[_num_of_editorpage];
....
delete[] m_editorpage ;发布于 2013-10-20 20:54:57
使用std::vector类或类似类如何?
https://stackoverflow.com/questions/19474778
复制相似问题