どなたか教えてください。


struct X {
int x;
};


void B(struct X *x) {
printf("%d\n", x->x);
}

void A() {
struct X x;
B(&x);
}

こんな感じで関数Aから関数Bを呼ぶコードがあるとして、
関数BをLuaに書き換えたいのだが、
どうやったらC言語側でメモリ管理している構造体データをLuaの関数に渡せるの?