我在通过引用传递指针时遇到问题。

这是方法

void set_range(double **measu)
{
if ((*measu)[0] < 0) //or i is used for a loop
   return ;
}


int main()
{
   double *mes;
   set_range(&mes[1]);

}


我已经分配了内存,并且设置了所需的值。但是此程序给我“未处理的异常访问冲突读取位置”错误。
所以我的问题是,如何将mes [1]而不是mes [0](通常在给定(&mes)时传递)的指针传递给set_range方法?

最佳答案

将函数更改为采用double*而不是double**,例如:

void set_range(double *measu)
{
  if (*measu < 0) //or i is used for a loop
    return;
}

int main()
{
  double *mes;
  ...
  set_range(&mes[1]);
}


另外,也可以使用真实引用:

void set_range(double &measu)
{
  if (measu < 0) //or i is used for a loop
    return;
}

int main()
{
  double *mes;
  ...
  set_range(mes[1]);
}

09-28 08:47