Расширение указателя массива в окне контрольного значения отладчика Visual C++

В этой статье описывается, как развернуть указатель массива для просмотра всех элементов массива в окне контрольного значения отладчика Visual C++.

Исходная версия продукта:   Visual C++
Исходный номер статьи базы знаний:   198953

Сводка

Начиная с Visual C++ версии 6,0, теперь можно развернуть указатель массива для просмотра всех элементов массива в окне контрольного значения отладчика Visual C++. Эта функция не задокументирована.

В окне Контрольное значение введите выражение, которое оценивается как указатель, за которым следует запятая, и число элементов в массиве.

Дополнительные сведения

  1. Создайте в качестве консольного приложения отладочную версию следующего кода.

    // Filename main.cpp
    // No compile option needed
    #include <iostream.h>
    void main(void)
    {
        int * p;
        char* ptr = "Hello World";
        p = new int [10];
    
        for(int i=0; i<=9; i++){*(p+i) = i+1;}
        cout << i <<endl;
    }
    
  2. Пошаговое выполнение кода с отладчиком и остановкой в последней строке кода.

  3. В окне " Контрольное значение " или " Быстрая проверка " добавьте переменную p или ptr . Вы увидите символ "плюс" (+) рядом с переменной.

  4. Щелкните символ "плюс" (+), чтобы развернуть переменную. Отображается только первый элемент массива, на который указывает указатель.

  5. Теперь введите p, 10 или ptr, 11 в окне Контрольное значение .

  6. Щелкните символ "плюс" (+), чтобы развернуть переменную. Теперь вы увидите все элементы массива, на которые он указывает.

Если требуется просмотреть определенный диапазон элементов, введите адрес первого элемента, чтобы указать начальный индекс, а затем описатель формата, как описано в предыдущих шагах. Например, (p + 3), 8 показывает элементы p[3..10] и (PTR + 3), 10 показывает элементы ptr[3..12] . К сожалению, начальный индекс в окне контрольного значения будет иметь значение [0], которое соответствует индексу 3 в этом примере. Помните, что для получения фактического индекса элемента массива в каждый отображаемый индекс добавляется смещение 3.