2011-10-25 80 views
0

我有一個2D陣列如:訪問值不正確

 // construct initial **array 
     int **arr; 
     arr = new int* [SIZE]; 
     for (int i = 0; i < SIZE; i++) { 
      arr[i] = new int[SIZE]; 
     } 

我然後從CIN填充輸入陣列,並且工作正常。然而,當我去循環迭代訪問數組中的值時,我得到了不正確的值。

我已經打印出來的值,因爲我的東西加入其中,如:

"Adding <int> to array position <row><col>" 

例如,我存儲整數{{1,2,3}, {4,5,6}, {7,8,0}},但是當我去訪問他們,我得到的值{{49,50,51}, {52,53,54}, {55,56,48}}

我有一種感覺,這是微不足道的東西,我只是不知道在哪裏看。

+1

你能發佈你的代碼嗎? –

+0

你如何輸入你的值?沒有這個,我們不知道什麼是錯的。 – FailedDev

+0

@泰勒貝爾:你可以發佈代碼將值添加到'arr'嗎? – Jacob

回答

4

看起來要存儲的數字的ASCII值,而不是它們的數值,例如性格1具有ASCII值49.檢查您所使用讀取輸入變量是數字型,而不是char

+0

哇,你100%正確。我正在查看我的代碼,並且完全忘記將字符轉換爲它們的整數值。非常感謝你,我覺得自己是一個完整的n00b。 –

+0

@馬克拜爾斯:很好! – Jacob

1

它看起來像我得到的字符的ASCII值 - 即49是'1',50是'2'等。

+0

呵呵,看到馬克在我之前回答:)這是一個增加值作爲測試用例有幫助的例子之一,你會看到這樣的模式,不管它是十六進制,二進制標誌,ASCII等等。 – hex4def6