C++ 没有动态内存分配的Lex和Yacc

C++ 没有动态内存分配的Lex和Yacc,c++,embed,memory-management,yacc,lex,C++,Embed,Memory Management,Yacc,Lex,我正在设计一个在嵌入式环境中运行的软件,在嵌入式环境中禁止使用动态内存。Lex和Yacc非常适合该应用程序 我可以将Lex和Yacc配置为完全不使用动态内存分配吗 我是否可以将Lex和Yacc配置为使用预定义的内存块,从而将动态内存使用限制在预定义的空间内 我是否可以将动态内存的使用限制为仅用于程序初始化(即程序首次运行时) 编辑: 作为对TonyK的响应,我希望解析器不要使用动态内存 谢谢我不确定你能不能做到这一点-如果这些工具生成的C语言想要进行动态分配,那么你很难阻止它们。也许最好的办法是

我正在设计一个在嵌入式环境中运行的软件,在嵌入式环境中禁止使用动态内存。Lex和Yacc非常适合该应用程序

我可以将Lex和Yacc配置为完全不使用动态内存分配吗

我是否可以将Lex和Yacc配置为使用预定义的内存块,从而将动态内存使用限制在预定义的空间内

我是否可以将动态内存的使用限制为仅用于程序初始化(即程序首次运行时)

编辑:
作为对TonyK的响应,我希望解析器不要使用动态内存


谢谢

我不确定你能不能做到这一点-如果这些工具生成的C语言想要进行动态分配,那么你很难阻止它们。也许最好的办法是创建您自己的分配系统,使用您想要允许的保留内存。

当然可以,如果您可以自己编译Lex和Yacc的话。您只需实现自己的malloc和free,并链接到它们。(假设Lex和Yacc都是纯C,我认为是这样的。)


编辑我是否误解了另一个问题?您希望Lex和Yacc自己使用有限的内存,还是希望他们生成使用有限内存的解析器?

您可以使用noyyalloc、noyyfree和noyyrealloc,然后自己实现它们

您是否考虑过在自己的
malloc
实现中进行链接?我希望解析器不要使用动态memmory。这并不能解决问题。禁止OP使用动态内存分配。实现自己的动态内存分配并不符合规则的精神。