在编译为 Wasm 的 Rust 代码中堆分配内存时,会分配 Wasm 线性内存中的内存。
我是否正确理解指针的值是该内存中的偏移量?如果是,是否可以将值0
作为偏移量/指针获取并且有效?
一个简单的例子是:
let data: Vec<u8> = Vec::with_capacity(123);
let data_ptr = data.as_ptr() as usize;
我可以假设data_ptr
它是非零的还是一个有效的地址?
在编译为 Wasm 的 Rust 代码中堆分配内存时,会分配 Wasm 线性内存中的内存。
我是否正确理解指针的值是该内存中的偏移量?如果是,是否可以将值0
作为偏移量/指针获取并且有效?
一个简单的例子是:
let data: Vec<u8> = Vec::with_capacity(123);
let data_ptr = data.as_ptr() as usize;
我可以假设data_ptr
它是非零的还是一个有效的地址?
是的,它可以为零。
有关将 JavaScript 字符串传递给编译为 WebAssembly 的 Rust 函数的示例,请参阅传递一个 JavaScript 字符串,NULL
其中它为零,并且使用了一种解决方法来避免与传统值冲突。