2011-10-25 107 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