阅读我尝试种植一些内存规格后,也做了以下内容:Webassembly成长记忆和进口的malloc
(module
(table 0 anyfunc)
(memory $0 1)
(export "memory" (memory $0))
(export "f" (func $0))
(func $0 (param $0 i32) (result i32)
get_local $0
grow_memory
)
)
现在我希望,如果我们输入10,我们有11页大小倍数,所以像:
(memory $0 1)
变为
(memory $0 11)
我不得不添加一个返回值SI堆栈没有被清空。现在我假设该方法返回非-1的东西,如果它成功的权利?在这种情况下,我认为它有效,我应该有更多的页面。
我知道也有JS方式,但我更喜欢直接在WebAssembly内部做所有这些东西。有趣的是,我们可以从“Env”中导入C函数,例如malloc,free,strcopy等。
所以我的问题是:我的方法是增加内存的正确性吗?我应该导入C风格的模块吗? grow_memory和realloc()之间的关系是什么,或者说有什么不同?
太好了,你说得对。也是下降很好,我完全忘了它。确实有助于在需要时保持堆栈清晰。 – Asperger
我也可以根据https://github.com/WebAssembly/design/blob/master/FutureFeatures.md#finer-grained-control-over-memory丢弃信息。所选范围只是归零。有趣。 – Asperger
有一个问题,我正确理解grow_memory是否在使用malloc等的情况下使用? – Asperger