Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用返回SEXP的函数时必须始终使用PROTECT吗?_C_R - Fatal编程技术网

调用返回SEXP的函数时必须始终使用PROTECT吗?

调用返回SEXP的函数时必须始终使用PROTECT吗?,c,r,C,R,我正在编写我的第一个集成了一些C代码的包(不是Rcpp) 假设我有一个辅助函数 SEXP f(double x){ ... ... } 现在我在另一个函数中调用这个函数。我应该使用保护?那就是,我应该怎么做 SEXP result_f; PROTECT(result_f = f(x)); UNPROTECT(1); 或者只做sexpresult\u f=f(x)是正确的?正常@李哲源 非常感谢。(我在我的代码中使用了PROTECT(result\u f=f(x)),它也可以工作。)@

我正在编写我的第一个集成了一些C代码的包(不是
Rcpp

假设我有一个辅助函数

SEXP f(double x){
  ...
  ...
}
现在我在另一个函数中调用这个函数。我应该使用
保护
?那就是,我应该怎么做

SEXP result_f;
PROTECT(result_f = f(x));
UNPROTECT(1);

或者只做
sexpresult\u f=f(x)是正确的

正常@李哲源 非常感谢。(我在我的代码中使用了
PROTECT(result\u f=f(x))
,它也可以工作。)@李哲源 我在几首图图中看到了这种情况,例如:
PROTECT(z=allocVector(REALSXP,m+n-1))