我使用网站将C程序编译为wasm
https://mbebenita.github.io/WasmExplorer/。
每当我尝试在webassembly中创建数组并使用它时,运行程序时都会收到“ TypeError:索引超出范围”。我目前正在使用其他解决方案,并成功运行该程序。
有效的解决方案:将数组作为参数(指针)传递
int prime(int array[], int n) {
for (int x=0; x<n; x++) {
array[x] = 1;
}
int count = 0;
for(int i=2; i<n; i++) {
if (array[i] == 1) {
count += 1;
for (int j=2*i; j<n; j+=i){
array[j] = 0;
}
}
}
return count;
}
在javascript中导入prime.wasm
文件后,我必须调用如下函数:
console.log(prime(0, 100));
以及我想要的东西(在wasm函数中创建一个数组):
int prime(int n) {
bool array[n];
for (int x=0; x<n; x++) {
array[x] = true;
}
int count = 0;
for(int i=2; i<n; i++) {
if (array[i] == true) {
count += 1;
for (int j=2*i; j<n; j+=i){
array[j] = false;
}
}
}
return count;
}
在javascript中导入wasm文件后,我想调用如下函数:
console.log(prime(100));
我该如何解决此问题并最终在wasm函数中使用数组而不必传递任何指针?