我用 C 语言编写了一个函数“foo”,我想从 R 程序中调用它。该函数将矩阵作为输入并对其进行一些操作(例如,将每个元素加 1)。虽然很容易将单个向量作为
.C("foo", n=as.integer(5), x=as.double(rnorm(5)))
用 foo 实现为
void foo(int *nin, double *x)
{
int n = nin[0];
int i;
for (i=0; i<n; i++)
x[i] = x[i] * x[i];
}
如何传入二维数组?如果我将“double *x”更改为“double **x”,则会出现分段错误。任何指针表示赞赏。