日期:2014-05-17  浏览次数:20836 次

关于将C语言转换为C#中的指针问题
将C语言的代码转换为C#的代码,C中的指针在C#中应该是用数组吧?
那位大神看看下面的转换
void __ogg_fdrffti(int n, double *wsave, int *ifac){

  if (n == 1) return;
  drfti1(n, wsave+n, ifac);
}/*c代码*/
  void __ogg_fdrffti(int n, double[] wsave, int[] ifac)
  {
  if (n == 1) return;
  drfti1(n,wsave+n,ifac);
  }/*转换后的C#代码*/
但是在wsave+n下提示有错误为“运算符“+”无法应用于double[]和int类型的操作数”
求错误的的解决方法,不胜感激

------解决方案--------------------
探讨

wsave+n,这样c#不支持,c#只能通过下标访问,wsave[n]

------解决方案--------------------
既然你的drfti1是改写得来的,那么顺便把参数列表也改写下,增加1个参数,用来传递那个wsave+n的n值,内部处理就是数组的偏移量了。