Вот мой C-код:
// helloworld.c
#include <stdio.h>
#include <emscripten.h>
int* EMSCRIPTEN_KEEPALIVE getIntArray(){
static int numbers[] = {1, 2, 4, 8, 16};
return numbers;
}
Вот некоторые из моих JS:
// helloworld.html
let result = Module.ccall('getIntArray', // name of C function
'Uint8Array', // return type
[null], // argument types
[null]); // arguments
let array = new Uint8Array(result,5);
console.log(result); // prints 1024
console.log(array); // prints Uint8Array(1024) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … ]
Все это компилируется и работает нормально.Приведенный выше код прекрасно работает для примитивных значений, но не работает с указателем массива, а типизированный массив JS, который я получаю, - это все нули.Я видел некоторые другие решения в документации, но они, похоже, не работают и для меня.