使用与Bison的链接列表

时间:2010-12-24 16:34:08

标签: malloc bison

假设我的YYSTYPE是一个带有指向下一个结构的指针的结构。我可以将该指针指向其他语法变量的YYSTYPE值,或者它们的YYSTYPE值是否为局部值,并且在派生结束后将消失,从而导致稍后出现段错误。

1 个答案:

答案 0 :(得分:1)

YYSTYPE是Yacc表达式堆栈上的变量类型。

如果您创建的指针是实际存储在Yacc堆栈中的项目,通常通过引用$1(或&$1来获取指针)来完成,那么您确实指向的数据是将被释放并重新使用,并且正处于一个受伤的世界(例如,如果你很幸运则会出现分段错误;如果你运气不好则会出现混乱和错误的信息)。

如果您创建的指针是您管理的YYSTYPE类型的项目,那么当然没有问题;你管理他们的持续时间,而不是Yacc。

将您需要的任何内容从$1复制到您自己的存储空间中。