我正在尝试在护士上使用janet c api,但我没有得到我所期望的。
我尝试在c文件
上定义函数static Janet jgetyx(int32_t argc, Janet *argv){
janet_fixarity(argc, 1);
WINDOW *win = (WINDOW *) janet_getpointer(argv, 0);
int y, x;
getyx(win, y, x);
int *yxpos[2] = {y, x};
return janet_wrap_array((JanetArray *) &yxpos);
}
我像这样调用定义的函数
(nc/mvwprintw win 2 2 (string (get info 1) " " (get info 0)))
但是结果是
this is the header─┐
│this is a box │
│ 4.64148e-310 3.458
46e-323 │
│ │
│ │
│ │
│ │
│ │
└──────────────────┘
我希望在盒子的第二行有值,但相反,我得到了内存地址,因为它看起来…我对c语言的生疏知识并不能使我更接近于解决这个问题。
有人能帮我吗?
代码可以在test/term-info.janet
上找到。
谢谢!
我还询问了关于存储库的问题。一种可行的方法是:
int y, x;
getyx(win, y, x);
JanetArray *arr = janet_array(2);
janet_array_push(arr, janet_wrap_integer(y));
janet_array_push(arr, janet_wrap_integer(x));
return janet_wrap_array(arr);