相关疑难解决方法(0)

296
推荐指数
6
解决办法
38万
查看次数

什么时候在BISON中调用%析构函数?

什么时候在BISON中调用%析构函数?我有以下野牛代码:

%union{
    char * sval; 
    Variable * vval; 
} 

%token VARIABLE 
%token Literal 
%type <vval> Expression VARIABLE 
%type <sval> Literal 

%destructor { delete $$; } <vval> 
%destructor { delete $$; } Literal 
Run Code Online (Sandbox Code Playgroud)

其中Variable是一个类.我认为在处理一行之后,所有的Variable对象都将被释放,但我看不到调用析构函数.这将导致直接内存泄漏......

编辑:要清楚; 我为新令牌分配了一个新的Variable对象,并将此令牌推送到BISON堆栈.我希望删除变量,当它被bison弹出并从堆栈中丢弃时.我认为%析构函数可以达到这个目的,但我不确定了..

c++ bison

5
推荐指数
2
解决办法
2777
查看次数

标签 统计

bison ×1

c ×1

c++ ×1

function ×1

strdup ×1