错误地访问2D数组中的值

时间:2011-10-25 21:52:02

标签: c++ multidimensional-array 8-puzzle

我有一个2D数组,例如:

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

然后我用cin的输入填充数组,这样工作正常。然而,当我通过double for循环迭代访问数组中的值时,我得到了不正确的值。

我已将这些值打印出来,因为我将它们添加到以下内容中:

"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}}

我有一种感觉,这是微不足道的,我只是不知道在哪里看。

2 个答案:

答案 0 :(得分:4)

看起来您正在存储数字的ASCII值而不是它们的数值,例如字符1具有ASCII值49.检查您用于读取输入的变量是数字类型而非char

答案 1 :(得分:1)

在我看来,你得到的是字符的ASCII值 - 即49是'1',50是'2'等等。