Код рабочий.
Пробуем:
C++ (Qt)
#include <QApplication>
#include <QSet>
#include <QVector>
typedef struct
{
QSet<QString> vFi;
QVector<QString> symbols;
} tprd;
typedef struct
{
QString fsy;
tprd prd;
} mrule;
const int rows = 10;
const int cols = 10;
int main( int /*argc*/, char */*argv*/[] )
{
mrule **M;
//new
M = new mrule*[rows]; //выделение памяти для таблицы предикативного анализатора
for(int i = 0; i < cols; ++i)
M[i] = new mrule[cols];
//delete
for(int i = 0; i < cols; ++i)
{
M[i]->prd.symbols.clear(); // Можно не делать
M[i]->prd.vFi.clear(); // Очистка пройдет в деструкторе
delete[] M[i];
}
delete[] M; //delete [] M;
return 0;
}
У меня проблем не возникло.