将2个数组参数传递给wasm

时间:2018-07-23 17:07:51

标签: javascript arrays webassembly

我有一个c ++函数,该函数接受2个数组并将它们相乘在一起。

void multData(unsigned char *arr1, unsigned char *arr2) {
   for(i=0;i<10;i++){
    arr1[i] = arr1[i] * arr2[i];
   }
}

编译时,我使用malloc为堆中的两个数组分配空间。

var mallocBuff = Module._malloc(arr1.length); 
var mallocBuff2 = Module._malloc(arr2.length); 

然后在用值填充新分配的数据之后,我将这样称呼它:

Module.ccall('multData', null, ['number'], [mallocBuff], [mallocBuff2]);

但是,经过一些测试,我意识到只有第一个数组正在接收malloc指针。第二个数组只是一堆0。

反正有2个数组传递给wasm编译函数吗?

1 个答案:

答案 0 :(得分:1)

ccall签名为ccall(ident, returnType, argTypes, args, opts)API Reference

Module.ccall('multData', null, ['number', 'number'], [mallocBuff, mallocBuff2]);