Я работаю над комбинацией лексера / парсера с Bison и Flex и немного беспокоюсь об утечках памяти.
Грамматика довольно проста, и (до сих пор) мне удалось уйти со следующим определением:
#define YYSTYPE char const *
В Flex, когда я читаю строку, я выделяю достаточно памяти для этой строки, а затем копирую ее в yylval
. Насколько я знаю, это вполне стандартная практика.
Однако я нигде не могу найти никаких документов, которые говорят мне, когда мне следует освободить память в yylval.
Бизон обрабатывает это автоматически для меня? Должен ли я сделать это в конце моего действия? Или когда еще я должен это делать?