0
此代碼是不正確,但它告訴我試圖做emscripten閱讀的JavaScript arrayBuffer用C
char* p = EM_ASM(
var a = new ArrayBuffer(8);
return a;
);
什麼是獲得了JavaScript arrayBuffer的C指針的正確方法是什麼?
我只想讀取數組緩衝區不寫
此代碼是不正確,但它告訴我試圖做emscripten閱讀的JavaScript arrayBuffer用C
char* p = EM_ASM(
var a = new ArrayBuffer(8);
return a;
);
什麼是獲得了JavaScript arrayBuffer的C指針的正確方法是什麼?
我只想讀取數組緩衝區不寫
據我所知,有沒有直接的方式從一些內聯JavaScript返回數組(雖然有一種方法從JavaScript中返回只讀數組C功能,請參見this answer)。你可以做的是在C函數中爲數組使用malloc空間,將地址傳遞給內聯Emscripten,並使用Emscripten JavaScript函數writeArrayToMemory
將JavaScript數組複製到malloc
ed內存中。像這樣的...
char *a = malloc(4);
EM_ASM_INT({
var v1 = new Uint8Array([2,4,6,8]);
writeArrayToMemory(v1, $0)
}, a);
printf("the array is [%d, %d, %d, %d]\n", a[0], a[1], a[2], a[3]);