我有一个很长的程序,它由一个头文件和两个源文件组成,在第一个程序中,我编写了函数的实现,在第二个程序中(这是我的主要程序),我调用并执行了它们。虽然,在某一时刻我收到一条错误消息,说



然后程序停止。

正如我说的那样,有很多行代码,尽管我将张贴最相关的部分以及发生错误的位置,但是我无法在此处发布整个源代码。

当我尝试调用此函数时,会发生我的错误(在下面可以找到它的实现):

void chest_first(Complex* FFTInput, Complex* IFFTOutput, Complex* HFirst)
{
    int i;

    for(i = 0; i < 64; i++)
    {
        HFirst[i].real = FFTInput[i].real / IFFTOutput[i].real;
        HFirst[i].imag = FFTInput[i].imag / IFFTOutput[i].imag;
    }

}

在这种情况下,Complex是我定义的类型定义。
typedef struct {
    int real, imag;
} Complex;

这是主要部分,调用此函数。
  Complex HFirst[64];

  if((strcmp(channel, "LS") == 0) || (strcmp(channel, "ls") == 0))
  {
      if(i == 1)
        chest_first(fft_input, ifft_bpsk_output, HFirst);
      .
      .
      .
  }

我之前已经调用了其他一些函数,这些函数将值分别添加到fft_input和ifft_bpsk_output中,它们都是具有64个元素的Complex数组。

最佳答案

您可能要除以零或其他一些荒谬的数字。您确定realimagIFFTOutput[i]不为零吗?在可能之前打印出来吗?

09-10 04:33
查看更多