如何在EM_ASM中读取C++数组的元素

How to read elements of a C++ array inside EM_ASM

本文关键字:C++ 读取 数组 元素 ASM EM      更新时间:2023-10-16

这段代码是错误的,但它告诉了我正在尝试做什么

float a[2] = {1.0f, 2.0f};
EM_ASM({
var sum = $0[0] + $0[1];
}, a);

正确的方法是什么?

正确的方法是

float a[2] = {1.0f, 2.0f};
EM_ASM_({
var sum = getValue($0+0, 'float') + getValue($0+4, 'float');
}, a);

要获取浮点数组中的n元素,请执行以下操作getValue($0 + n*4, 'float')
如果它是一个双数组,它将是getValue($0 + n*8, 'double')