1

在编译为 Wasm 的 Rust 代码中堆分配内存时,会分配 Wasm 线性内存中的内存。

我是否正确理解指针的值是该内存中的偏移量?如果是,是否可以将值0作为偏移量/指针获取并且有效?

一个简单的例子是:

let data: Vec<u8> = Vec::with_capacity(123);
let data_ptr = data.as_ptr() as usize;

我可以假设data_ptr它是非零的还是一个有效的地址?

4

1 回答 1

1

是的,它可以为零。

有关将 JavaScript 字符串传递给编译为 WebAssembly 的 Rust 函数的示例,请参阅传递一个 JavaScript 字符串,NULL其中它为零,并且使用了一种解决方法来避免与传统值冲突。

于 2020-05-27T12:29:38.480 回答