假设我的YYSTYPE是一个带有指向下一个结构的指针的结构。我是否可以将指针指向其他语法变量的YYSTYPE值,或者它们的YYSTYPE值是局部的,并且在派生结束后将消失,从而导致随后出现段错误。
发布于 2010-12-24 16:56:16
YYSTYPE是Yacc表达式堆栈上的变量类型。
如果您创建的指针指向实际存储在Yacc堆栈中的项(通常是通过引用$1
(或&$1
来获取指针)来完成的),那么您确实指向了将被释放和重用的数据,并且会受到很多伤害(例如,幸运的话是分段错误;不幸的话是混乱和错误处理的信息)。
如果您创建的指针指向您管理的YYSTYPE类型的项目,那么当然没有问题;您管理它们的持续时间,而不是Yacc。
将您需要的任何东西从$1
复制到您自己的存储中。
https://stackoverflow.com/questions/4527327
复制相似问题