2011-10-08 71 views
0

運行時錯誤我不明白爲什麼我得到的運行時錯誤:與陣列

the variable ia is being used without being initialized.

然而,據我所看到的,我已初始化它。

#include <iostream> 
using namespace std; 

int main() 
{ 
    //array dimensions 
    const int row_size = 2; 
    const int col_size = 4; 

    //array definition 
    int ia[row_size][col_size] = {{0, 1, 2, 3},{5, 6, 7, 8}}; 

    cout << ia[2][4]; 

    system("PAUSE"); 
    return 0; 
} 
+2

'ia [2] [4]'無效。計數從0開始,而不是從1開始。您可能是指'ia [1] [3]'。 – rid

回答

5

C++數組索引是從零開始的。因此,要訪問第二行的第四列,您需要訪問ia[1][3]

+0

啊這麼簡單的監督......謝謝你會給你綠色標記。 –

0

數組索引從0開始,因此您的ia[2][4]將超出範圍。應該是ia[1][3]

0

陣列是基於0的,即陣列a中的第一個元素是a[0]。因此,4個元素的數組中的最後一個元素將是a[3]。在你的情況下,ia[1][3]會給你我相信的所尋找的元素。

1
ia[2][4] 

不存在。

ia[0..1][0...3] 

然而,

嘗試:

cout << ia[1][3]; 

陣列在C++中與索引0啓動。 1實際上是2元素。所以:

int a[2] = {42, 50}; 

std::cout << a[0] << a[1]; // prints 4250 
std::cout << a[2];   // a[2] doesn't exist!