Здравствуйте!
Столкнулся сейчас с такой особенностью библиотеки PCRE. В PCRE есть основная функция:
// Функция pcre_compile компилирует регулярное выражение
// во внутреннее представление библиотеки.
pcre *pcre_compile(const char *pattern, int options,
const char **errptr, int *erroffset,
const unsigned char *tableptr);
Она возвращает ссылку на структуру pcre. Я хотел бы эти «промежуточные» данные куда-нибудь сохранить (типа что-то наподобие кеширования) чтобы лишний раз одну и ту же регулярку не компилировать во внутренне представление.
Чтобы сохранить, нужно иметь место, куда сохранять. Для начала примитивно - сохранить в переменную типа pcre. Добавляю в программу одну строку:
pcre regexpCompileData;
и компилирую. Получаю ошибку:
error: aggregate ‘pcre regexpCompileData’ has incomplete type and cannot be defined
Вопрос: как так хитро сделано, что нет доступа к типу, а есть доступ только к указателю на тип? Можно ли это как-то обойти чтобы вытянуть данные?