Создание немодального листа свойств с использованием массива страниц свойств Переполнение стека в MFC

Я создаю лист свойств, полученный из CMFCPropertySheet, он создается из мэйнфрейма при вызове начальной страницы редактора. Мой вопрос: когда вызывается дополнительная страница, я бы хотел, чтобы для нее была создана новая вкладка. Каждая вызываемая страница будет получена одним и тем же классом, но максимальное количество страниц неизвестно, поэтому ее необходимо определить как

    CEditorPage *m_editorpage[];

но компилятор жалуется, что он использует массив нулевого размера.
В деструкторе я удаляю страницы, созданные в цикле for, от 0 до количества страниц в листе.
в посте уничтожить удаляю этот указатель.
Программа вылетает и останавливается на

    delete this;

Если я не использую массив, он не падает. Но поскольку я использую одну и ту же страницу класса на каждой странице свойств, и я не знаю, сколько их будет, мне нужно использовать массив нулевого размера.
В любом случае я получаю утечку памяти.

Как создать массив нулевого размера на основе CMFCPropertyPage в листе свойств, чтобы добавить дополнительные страницы во время выполнения и выполнить надлежащую очистку при закрытии листа свойств. Я получаю сбой или утечку памяти в каждом методе, который я пробовал.

0

Решение

Попробуйте использовать динамический массив

CEditorPage *m_editorpage = new CEditorPage[_num_of_editorpage];
....
delete[] m_editorpage ;
1

Другие решения

Как насчет использования класса std :: vector или аналогичного?

0

По вопросам рекламы [email protected]