我有一个基于c-bison-flex的工作项目。我已经开始为它构建一个python-tkinter环境,但是我陷入了陷阱。 我打算将tkinter编辑窗口的内容复制到'c'应用程序的缓冲区。文本传递没有问题,我可以到达'c'函数 - 但缓冲区地址是未知的。缓冲区由flex'动态'分配。 有什么想法解决它吗? (也许是无关紧要的,但系统是Ubuntu。)
答案 0 :(得分:1)
flex
提供了一个用于在不同输入缓冲区之间切换的接口,包括指定具有函数yy_scan_string
和yy_scan_bytes
的内存输入缓冲区的可能性(参见Flex manual有关详情。)
正如手册所说,这些例程会复制字符串,因此您仍然不知道flex中字符串的地址。但它确实意味着您在创建flex缓冲区后不需要保留字符串,这在您与脚本系统连接时很方便。