1
Я запускаю эту программу для вычисления точечного произведения двух векторов ... Я использую * 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 ];
} //
}
}
Тогда я назову это в R, используя .C.
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
Есть ли что-то очевидное, я поступаю неправильно?
Вы не передаете y своей функции – demonplus
Один из аргументов - «попытка2» и у отсутствует – demonplus
, почему вам нужен ToF, вы не используете его в функции? – demonplus