C 函数运行但在多次迭代中冻结

C 函数运行但在多次迭代中冻结,c,r,C,R,我用C编写了以下函数: void across_fip(double *x_a, int *n, int *d, double *res_a,double *tau,int *epp, double *aux_res, double *aux_res2,double *iplus, double *iminus, int *Ts) { int i, j, ilow,n_2; double ts = (double)(*Ts); double temp, crit; n

我用C编写了以下函数:

void across_fip(double *x_a, int *n,  int *d, double *res_a,double *tau,int *epp, double *aux_res, 
double *aux_res2,double *iplus, double *iminus, int *Ts) {
   int i, j, ilow,n_2;
   double ts = (double)(*Ts);
   double temp, crit;
   n_2 = *n;

   for (j=0; j < *d; j++){
      ilow = j * n_2;
      for (i = 0; i < n_2; i++) 
         aux_res[i] = x_a[i+ilow];
      fast_inner_prod(aux_res,n,aux_res2,iplus,iminus);
      for (i = 0; i < n_2; i++){
         temp = fabs(aux_res2[i]);
         crit = tau[j]*ts;
         if (temp >  crit) 
            res_a[i] = res_a[i]+fabs(aux_res2[i]);
      }
   }
}
我从R Rstudio调用此函数,然后,即使它可以工作,在多次使用后,我会收到以下错误消息: R以错误消息终止:此应用程序已请求运行时以异常方式终止它


这是内存问题吗?如果是,我如何修复它?

您在这里取消了很多指针的引用。如果看不到它们来自的R代码,就很难知道出了什么问题。您是否确保x_a[i+ilow]从不越界,并调用未定义的行为?对于aux_res[i]、res_a[i]和aux_res2[i]等也是如此……如何从R加载和调用此代码?问题已解决。埃利亚斯是对的,第三个for循环在某些情况下超过了极限。谢谢