閱讀我嘗試種植一些內存規格後,也做了以下內容: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