5

Bir başlık dosya oluşur uzun bir program, var (çekirdek döküldü) ve iki kaynak dosyaları, birinci I fonksiyonların uygulamaları yazılmış ve ikinci birinde var ana) onları ararım ve yürütürüm. Gerçi, bir noktada benkayan nokta

Kayan nokta özel durumu (çekirdek döküldü) şeklinde bir hata mesajı

olsun ve program durur.

ben satır kod sürü hatası oluşmasına neden olan bu nedenle, ben en alakalı kısımlarını yayınlayacağız olsa burada benim bütün kaynak kodunu göndermek mümkün değilim ve vardır dediği gibi. Ben (onun uygulanmasını bulabilirsiniz altında) bu fonksiyonu çağırmak çalıştığınızda

Benim hata oluşur: Bu durumda Site İçerisinde

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; 
    } 

} 

, ben tanımladığınız bir tür tanımıdır.

typedef struct { 
    int real, imag; 
} Complex; 

Bu işlevin çağrıldığı ana bölüm aşağıdadır.

Complex HFirst[64]; 

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

Daha önce 64 elemanlı hem Kompleks diziler bazı diğer fft_input değerleri koymak fonksiyonu ve ifft_bpsk_output, çağrıda bulundular.

+6

'IFFTOutput [i] .real' (ya da '.imag') 0 (veya' -1' ve kar INT_MIN' bazı platformlarda başka bir olasılık' dır.) Ait, bir tamsayı bölme tarafından 0 'SIGFPE' yükselir. –

+0

@Daniel Fischer, tamsayı bölümünün tuhaflıkları hakkındaki yorumunuz ve SIGFPE'nin bir yanıt göndermeyi hak ettiğini düşünüyor. – chux

cevap

5

Muhtemelen sıfır veya başka saçma sayısına göre bölüyorlar. real ve 'un IFFTOutput[i] için sıfır olmadığından emin misiniz? Belki de daha önce yazdırmak mı?

+0

Evet, sorun buydu, tamamen özledim. 0 ile bölündüm. –

3

Ben, 0 ile bölünme bir sorun bu konuda değerinizi kontrol edebilir düşünüyorum. Ben de aynı problem.It başlamıştı

-1

nedeniyle veri türü ex işleyebilir hangi daha büyük değeri kullanılarak meydana gelir. Buna, bu kadar büyüklüğü işleyemez bir int dizisi becouz atılmış olacaktır A [10^7] int olarak tanımlanmış ise Yani uygun veri türlerini kullanmak zorunda .. büyüklüğü 10^7 bir dizi kullanarak .. size teşekkür :)

İlgili konular