0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 20
|
|
1 | |
Почему при создании динамического массива, отладчик видит только один первый элемент?01.10.2012, 11:33. Показов 10590. Ответов 24
Метки нет (Все метки)
Здравствуйте. Объясните почему при создании динамического массива, отладчик (а точнее окно "контрольные значения") видит только один первый элемент?
Извините за название темы. Модератор, прошу Вас исправить на "отладчик и динамический массив"
0
|
01.10.2012, 11:33 | |
Ответы с готовыми решениями:
24
Почему при создании динамического массива через new ячейки массива имеют значение -842150451? Нужно ли устанавливать указатель на первый элемент динамического массива при его освобождении При загрузке компа видит только один жесткий диск, а привод не видит. Не получается удалить первый отрицательный элемент динамического массива |
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
||||||
01.10.2012, 11:46 | 2 | |||||
Видимо, вы создаёте динамический массив как-то так:
1
|
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 20
|
|
01.10.2012, 13:18 [ТС] | 3 |
0
|
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
|
01.10.2012, 14:43 | 4 |
Ну чтобы автоматически массив раскрывался, то напрямую не получится (либо что-то хитроумное кодить, но не знаю, стоит ли оно того).
Если массив небольшой, то можно просто добавить в watch каждый элемент array[0], array[1] и т.д. Если большой - добавлять только интересущие элементы.
0
|
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 20
|
|
01.10.2012, 20:48 [ТС] | 5 |
Спасибо. Хотя все равно непонятно, почему статические массивы можно просматривать по ссылке (имени), а динамические - нет.
0
|
01.10.2012, 22:28 | 6 |
Нельзя, потому как отладчик не знает, какого размера и чего ты там выделял. Для отладчика есть только переменная типа "указатель на int"
Добавлено через 1 минуту Статический массив - это переменная типа "массив из стольки-то элементов". А динамический массив - это просто указатель. Вся отладочная информация, записываемая для отладчика - исключительно статическая
0
|
2277 / 1768 / 741
Регистрация: 27.07.2012
Сообщений: 5,251
|
||||||
02.10.2012, 00:12 | 7 | |||||
Хоть уже и ответили, добавлю и я. Когда массив задаётся статически, то его размер указывается явно в квадратных скобках. Вот эту цифирь в этих самых скобках отладчик может узнать, так как информация для отладчика формируется на этапе компиляции (тут я, может быть, не совсем прав, но для первого понимания достаточно). Когда же массив создаётся динамически, то на самом деле создаётся не массив, а вот что:
Вот такое объяснение перед сном Надеюсь, стало немного понятнее.
2
|
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 20
|
|
02.10.2012, 01:00 [ТС] | 10 |
Спасибо всем за подробное объяснение.
Нехорошо, правда, получается: мы что-то где-то создаем, работаем с этим, а отследить не можем. Ну а в памяти копаться - это уж если совсем плохо будет
0
|
419 / 381 / 163
Регистрация: 03.01.2013
Сообщений: 966
|
|
03.12.2013, 19:04 | 11 |
3
|
419 / 381 / 163
Регистрация: 03.01.2013
Сообщений: 966
|
|
03.12.2013, 20:40 | 13 |
0
|
419 / 381 / 163
Регистрация: 03.01.2013
Сообщений: 966
|
|
04.12.2013, 08:19 | 15 |
Щелкните 2 раза левой кнопкой мыши по названию переменной.
1
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
04.12.2013, 09:43 | 16 |
0
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
04.12.2013, 09:57 | 18 |
alsav22, я утрирую. Метод monochromer не панацея.
0
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
04.12.2013, 10:15 | 20 |
0
|
04.12.2013, 10:15 | |
04.12.2013, 10:15 | |
Помогаю со студенческими работами здесь
20
Поменять первый и максимальный элемент одномерного динамического массива Ошибка при создании динамического массива. Ошибка при создании динамического массива Ошибка при создании двумерного динамического массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |