我有一个很长的程序,它由一个头文件和两个源文件组成,在第一个文件中我编写了函数的实现,在第二个(这是我的主要文件)中,我调用并执行它们。虽然,有一次我收到一条错误消息说
浮点异常(核心转储)
程序停止。
正如我所说,有很多代码行,因此,我无法在此处发布我的整个源代码,尽管我将发布最相关的部分以及发生错误的位置。
当我尝试调用此函数时发生错误(您可以在下面找到它的实现):
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 个元素的复杂数组。