Вопрос по c++, visual-studio-2010 – Как увидеть все элементы двумерного массива в Visual Studio 2010?

15

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

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

Спасибо...

Ваш Ответ

4   ответа
19

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

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

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

Возможно, не тот ответ, который вы искали, но окно наблюдения, хотя и довольно мощное, просто не может делать то, что вы хотите.

Спасибо, этого достаточно для меня. Emre Turkoz
0

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

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 в качестве матрицы в вашем коде и визуализации с помощью, скажем,b,100 если ваша матрица 10 на 10.

1

Если вы хотите увидеть значения, организованные в 2D, более графически, вы можете попробоватьРасширение массива визуализатора, Он отлично работает с небольшими многомерными массивами.

Это бесплатное расширение с открытым исходным кодом, которое можно загрузить через MarketPlace. Он предназначен для отображения массивов при отладке приложения. Есть версии для визуальной студии20102012, 2013 и 2015, к сожалению, похоже, что он не был обновлен до 2017 года.

0

Поместите массив Q в глобальную область видимости, и вы увидите все его элементы (если это локальный массив, вы можете скопировать его в глобальный массив и манипулировать им в глобальном массиве):

int Q[17][17];
int main(){
    int x=1, y=1, z;
}

После отладки и проверки алгоритма вы можете использовать локальный массив по своему усмотрению.

Похожие вопросы