gpt4 book ai didi

c - Bison 推纯解析器中的堆处理

转载 作者:太空狗 更新时间:2023-10-29 17:13:04 25 4
gpt4 key购买 nike

有什么方法可以为堆管理指定我自己的分配器/解除分配器函数,而不是为 bison 中的纯推送解析器指定 malloc()/free() 吗?

最佳答案

大多数 Bison 的内存分配都可以用宏重定向 - 在序言中(在 %{%} 之间)你可以写

#define YYMALLOC mymalloc
#define YYFREE myfree

然后 Bison 将调用 mymallocmyfree 而不是 mallocfree。但是,它希望您提供的任何函数都具有与标准 mallocfree 完全相同的类型签名;没有办法让它传递额外的/不同的参数。如果我是你,我不会使用类似函数的宏。更糟糕的是,在我的副本 (Bison 2.4.1) 中,yypstate_new 直接调用了 malloc,没有覆盖可能——这可以说是一个错误。

关于c - Bison 推纯解析器中的堆处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5376833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com