Как увидеть все элементы двухмерного массива в Visual Studio 2010?

Я отлаживаю свой код на С++ в Visual Studio 2010 и хочу видеть содержимое моего массива, скажем Q, который равен 17x17. Когда я вставляю точку останова и пытаюсь отлаживать, я вижу только переменную "Q". Когда я отвечу на экран "Смотреть" и переименую его в "Q, 17", я вижу один уровень вниз.

Но я хочу увидеть и другое измерение. Я не могу написать "Q, 17,17". Какова правильная команда?

Спасибо...

Ответ 1

Вы не можете, по крайней мере, не напрямую.

Что вы можете сделать, это поместить &array[0][0] в окно памяти, а затем изменить его размер так, чтобы количество столбцов соответствовало одной строке данных array.

В качестве альтернативы вы можете поместить array[0],17 в окно просмотра, а затем повторить его для array[1],17 и т.д.

Не тот ответ, который вы искали, но окно с часами, достаточно мощное, просто не может делать то, что вам нужно.

Ответ 2

Предлагаемое решение работает только с 1D массивами. Но 2D-массив, который имеет фиксированный размер в каждой строке (видя первое измерение как строку, как в математике), может быть выделен как 1D-массив следующим образом:

int ** a = new int * [n];
int * b = new int [n*n];

a[0] = &b[0];
for (int i=1; i<n; i++)
{
    a[i] = a[i-1]+n;
}
int count=0;
for (int i=0; i<n; i++)
{
    for (int j=0; j<n; j++)
    {
        a[i][j]= rgen.randInt(-10,10);
    }
}

Затем вы можете использовать a в качестве матрицы в вашем коде и визуализировать, используя say b,100, если ваша матрица равна 10 на 10.