2016-11-16 14 views
0

2次元整数配列の0番目の値に値を代入しようとしています。しかし、適切な値を渡していますが、NullReferenceException例外が発生します。2次元配列に値を代入すると例外が発生する

public static int[,] Ctable; 

private static void GetTable(int m,int n) 
{ 
    m = 16; 
    for (int i = 1; i <= m; i++) 
    { 
     Ctable[i, 0] = 1; // Here it is giving Exception 
    } 
} 
+0

あなたのCtableは、あなたの問題です。私が投稿した質問をチェックしてください。デバッグの内容を学ぶ – mybirthname

答えて

4

2D配列Ctableは正しく初期化されません。まだ無効です。下の私の例を見てください。配列void GetTable(int m, int n)mnのサイズで配列を初期化します。

ループも正しくありません。配列はゼロインデックス付き(0、n - 1)です。配列を初期化するための追加情報があります。here

public static int[,] Ctable; 

private static void GetTable(int m, int n) 
{ 
    Ctable = new int[m, n]; // Initialize array here. 

    for (int i = 0; i < m; i++) // Iterate i < m not i <= m. 
    { 
     Ctable[i, 0] = 1; 
    } 
} 

ただし、常にCtableを上書きします。おそらくあなたは次のようなものを探しているでしょう:

private const int M = 16; // Size of the array element at 0. 

private const int N = 3; // Size of the array element at 1. 

public static int[,] Ctable = new int [M, N]; // Initialize array with the size of 16 x 3. 

private static void GetTable() 
{ 
    for (int i = 0; i < M; i++) 
    { 
     Ctable[i, 0] = 1; 
    } 
} 
+0

インデックスnの使用量とデータの充填量を表示することができます。ほとんどのOPはそれをよく知らない。 –

関連する問題