指针未更新值

时间:2015-07-24 10:39:18

标签: c++ r pointers

我正在运行这个程序来计算两个向量的点积...我使用* sum作为结果,但是在将它初始化为零之后,值在我的循环之后永远不会更新?

extern "C" {
    void attempt2( double * x , double * y, int * len , double * sum , int * ToF){
        *sum = 0;
        for ( int i = 0; i < *len ; i++ ){
            *sum += x[ i ]*y[ i ];
        } // 
    }
}

然后我使用.C。

在R中调用它
x <- c(1.1, 2.1, 3.9)
y <- c(3.0, 1.1, 7.2)
len <- length(x)
Tf <- TRUE
lst <- .C("attempt2", x = x,
          len = len,
          sum = as.numeric(0),
          ToF = as.logical(Tf))
lst

有什么明显的东西我做错了吗?

1 个答案:

答案 0 :(得分:0)

您应该在参数中添加y:

lst <- .C("attempt2", x = x, y = y,
          len = len,
          sum = as.numeric(0),
          ToF = as.logical(Tf))

也不确定您是否需要ToF