将 2 个数组参数传递给 wasm
Pass 2 array parameters into wasm
我有一个接受 2 个数组并将它们相乘的 C++ 函数。
void multData(unsigned char *arr1, unsigned char *arr2) {
for(i=0;i<10;i++){
arr1[i] = arr1[i] * arr2[i];
}
}
当我编译它时,我使用 malloc 为堆中的两个数组分配 space。
var mallocBuff = Module._malloc(arr1.length);
var mallocBuff2 = Module._malloc(arr2.length);
然后在用值填充新分配的数据后,我会这样称呼它:
Module.ccall('multData', null, ['number'], [mallocBuff], [mallocBuff2]);
然而,经过一些测试后,我意识到只有第一个数组正在接收 malloc 指针。第二个数组只是一堆0。
有没有办法将 2 个数组传递给 wasm 编译函数?
ccall
签名是 ccall(ident, returnType, argTypes, args, opts)
。
API Reference
Module.ccall('multData', null, ['number', 'number'], [mallocBuff, mallocBuff2]);
我有一个接受 2 个数组并将它们相乘的 C++ 函数。
void multData(unsigned char *arr1, unsigned char *arr2) {
for(i=0;i<10;i++){
arr1[i] = arr1[i] * arr2[i];
}
}
当我编译它时,我使用 malloc 为堆中的两个数组分配 space。
var mallocBuff = Module._malloc(arr1.length);
var mallocBuff2 = Module._malloc(arr2.length);
然后在用值填充新分配的数据后,我会这样称呼它:
Module.ccall('multData', null, ['number'], [mallocBuff], [mallocBuff2]);
然而,经过一些测试后,我意识到只有第一个数组正在接收 malloc 指针。第二个数组只是一堆0。
有没有办法将 2 个数组传递给 wasm 编译函数?
ccall
签名是 ccall(ident, returnType, argTypes, args, opts)
。
API Reference
Module.ccall('multData', null, ['number', 'number'], [mallocBuff, mallocBuff2]);