Eclipse-C ++-Отладка:просмотр содержимого массива

StackOverflow https://stackoverflow.com/questions/1824685

  •  22-07-2019
  •  | 
  •  

Вопрос

Можно ли увидеть содержимое динамически выделяемого массива, как в:

int *array = new int[dimension];

Я вижу только значение указателя.

Редактировать:только что нашел опцию "отображать в виде массива", но мне всегда приходится вручную вводить размер массива.Возможно ли получить это автоматически?

Это было полезно?

Решение

в eclipse, чтобы увидеть содержимое динамически размещенного массива (для всех, кто сталкивается с этим вопросом),

<Ол>
  • убедитесь, что вы находитесь в перспективе отладки. ищите «переменные» окно. если вы его не видите, нажмите «окно»; & GT; " Показать представление " & GT; & Quot; переменные & Quot;.
  • щелкните правой кнопкой мыши переменную массива
  • нажмите "Показать как массив"
  • eclipse не знает, насколько велик ваш массив, поэтому введите 0 для начального индекса и количество элементов, которые вы динамически распределяли по длине.
  • выбрать отображение в виде массива в затмении

    Другие советы

    Если вы хотите, чтобы вам не приходилось многократно отображать «Показать как массив», откройте «Выражения». и добавьте выражение (* массив @ размерность) . Не уверен, зачем нужны круглые скобки. Без них вы получите ошибку.

    На вкладке "Выражения", если вы сделаете то, что отметил клеонг, и введете (*array@dimension) затем вы также можете динамически задать размер массива для отображения.Это работает даже тогда, когда вам нужно другое выражение, чтобы получить его.

    Итак, допустим, у вас есть переменная x который содержит ваш размер массива, вы вводите (*array@x) и он будет использовать содержимое x в качестве измерения.

    "x" также может быть чем-то вроде содержимого структуры или разыменования указателя и тому подобного, т. Е.

    (*array@SomePtrToStruct->x) 
    

    работает просто отлично.

      

    только что нашел параметр «отображать как массив», но мне всегда нужно вручную вводить размер массива. Можно ли получить это автоматически?

    Это хорошо. Я бы придерживался этого. Автоматическое получение массива невозможно в общем случае в C или C ++, хотя, конечно, в некоторых тривиальных случаях это может быть сделано (но, вероятно, пока нет, - необходимо реализовать функции, прежде чем они существуют, чтобы перефразировать Раймонда Чена).

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top