Ошибка 2D-массива c ++ - PullRequest
       10

Ошибка 2D-массива c ++

0 голосов
/ 11 декабря 2008

Я пытаюсь запустить массив c ++ 2d (довольно простой файл), и он работает, но в конце появляется ошибка (по крайней мере, я думаю, что это ошибка).

Код для массива:

int myArray[10][10];
for (int i = 0; i <= 9; ++i){

    for (int t = 0; t <=9; ++t){

        myArray[i][t] = i+t; //This will give each element a value

    }

}

for (int i = 0; i <= 9; ++i){

    for (int t = 0; t <=9; ++t){

        cout << myArray[i][t] << "\n";

    }

это печатает массив правильно, но добавляет

"0x22fbb0"

в конце. Что это такое и почему это происходит?

Ответы [ 2 ]

6 голосов
/ 11 декабря 2008

Код, который вы показали, пока хорош. Напечатанный адрес, кажется, не печатается из этой части вашего кода. Я могу представить две ситуации для этого.

  • Вы случайно распечатали myArray [i] или myArray и забыли применить другой индекс. Когда значение массива преобразуется в адрес его первого элемента, оно вызывает печать адреса.
  • Вы случайно печатаете сам cout как cout << cout. cout имеет неявное преобразование в тип указателя (он используется для проверки нормального состояния, как в <code>if(cout) { ... }), и это также приведет к печати адреса.

Это может быть совершенно другая ситуация. Можете ли вы вставить код, который появляется после двух циклов?

5 голосов
/ 11 декабря 2008

Ошибка не в коде, который вы опубликовали. у вас есть еще один кут потом?

0x22 .... выглядит как адрес памяти, так что конкретно у вас может быть строка, которая читает

cout << myArray; </p>

где-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...