当堆分配编译为 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 函数,了解它为零的示例,并使用解决方法来避免与传统的NULL
值冲突。