2012-10-14 41 views
2

我是一個新手程序員,所以請和我打交道。我正在編寫一個程序來分析數據。當我執行程序時,我收到一個「浮點異常」,我不知道爲什麼。以下是錯誤源自的代碼部分。據我所知,if聲明似乎是問題,但我不明白爲什麼。任何幫助你可以給予不勝感激!爲什麼我得到浮點異常錯誤?

double tArray[600][49]; 

void main() { 
    double finalArray[600][0] 
    double n = 0; 
    int h = 0; 
    try { 
    for (int i = 0; i < 600; j++) { 
     for (int j = 1; j < 16; j++) { 
     h++; 
     n = tArray[i][j * 3 - 1] - tArray[i][j * 3 - 2]; 
     double t = -30; 
     if (n < t) { 
      finalArray[i][0] = tArray[h][3 * j] - tArray[h + t][3 * j]; 
      h++; 
     } 
     } 
    } 
    } 
} 
+0

'finalArray [i] [0]'確實超出範圍。 – chris

+0

你在內循環中遞增'h',然後用它作爲tArray中的第一個索引 - 它會快速地超過600個相當困難。 –

+0

我們可以假設'double finalArray [600] [0]'中缺少分號只是一個錯字,對嗎? – cHao

回答

1

嘗試宣告finalArray爲:

double finalArray[600][1]; 

看來,原來的聲明沒有爲元素分配任何空間。

如果沒有嘗試只分配一個維數組是這樣的:

double finalArray[600]; 

希望這有助於!

1

聲明double finalArray[600][0]表示該數組是由0個元素組成的600個元素。我認爲你希望第二維是1.請記住,你需要聲明行數和列數,但索引從0開始。

相關問題