C 函数运行但在多次迭代中冻结
我用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
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循环在某些情况下超过了极限。谢谢