Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как отслеживать значения матрицы


Автор: Mr_Nuke 29.3.2011, 16:09
Всем привет! Пытаюсь пересесть с дельфи, на C/С++
Столкнулся с такой проблемой. К примеру, с матрицами, в дельфи, если выполнять программу пошагово, в разделе watch вводишь A[1], и у тебя через запятую выводятся все элементы первой строки. У меня Visual Studio 5.0. Можно ли тут сделать так же?? У меня получилось посмотреть значение только одного элемента :(

И еще вопрос, объявляю матрицу int A[2][3]. В процессе пошагово выполнения навожу на нее курсор, и вылезает окошко 
Код

A {Length=2}
[0,0] {Length = 0}
[0,0] {Length = 0}

тоесть, как будто под столбцы память не выделилась. 
пишу A[1][1] = 5; В разделе Watch прописываю A[1][1]. Выдает ошибку error: index '1' out of bound for pointer/array 'A'    

Автор: borisbn 29.3.2011, 18:32
Цитата(Mr_Nuke @  29.3.2011,  16:09 Найти цитируемый пост)
У меня Visual Studio 5.0.

Есть вероятность, что как работать с IDE 1996-го года тебе здесь не смогут помочь smile
а из общих соображений: тебе нужно учитывать, что все массивы в Си начинаются с индекса 0, и заканчиваются (последний элемент в массиве) индексом N-1, где N - размер массива. С матрицами - то же самое.

Автор: Mr_Nuke 29.3.2011, 22:23
Ну с нуля массивы и в дельфи начинаются, только это не объясняет того, почему в watch не выводится значение в ячейке [1][1]  smile 

Автор: borisbn 29.3.2011, 22:25
Цитата(Mr_Nuke @  29.3.2011,  22:23 Найти цитируемый пост)
это не объясняет того, почему в watch не выводится значение

Цитата(borisbn @  29.3.2011,  18:32 Найти цитируемый пост)
как работать с IDE 1996-го года тебе здесь не смогут помочь

тем более, если ты не приведёшь код, который (по-твоему) не рааботает.

Автор: boostcoder 29.3.2011, 22:32
Mr_Nuke, позвольте поинтересоваться. какой смысл преследуете, юзая столь древний инструмент?

Автор: Mr_Nuke 30.3.2011, 16:28
borisbn, пока единственная проблема заключается в том, что при пошаговом выполнении трудно отследить изменение значений матрицы  smile 
Приходится работать с такой версией, поскольку такая же установлена в универе.
Боюсь задать глупый вопрос, но почему IDE 1996-го года если в названии 2005?

И какую версию предложите вы?

Автор: borisbn 30.3.2011, 16:36
Цитата(Mr_Nuke @  30.3.2011,  16:28 Найти цитируемый пост)
Боюсь задать глупый вопрос, но почему IDE 1996-го года если в названии 2005?

я не телепат
Цитата(Mr_Nuke @  29.3.2011,  16:09 Найти цитируемый пост)
У меня Visual Studio 5.0


теперь давай разбираться, т.к. 2005-я не новейшая, но вполне современная.
1. Покажи код, с которым происходит непонятки
2. Укажи на какой строке ты делаешь точку остановки

В общем побольше информации, потому, что если создать ( в любой студии, хоть бы и в 5.0 ) массив 2х3, и в элемент [1][1] что-то записать, то оно там появится, и отладчик это покажет.

Автор: Mr_Nuke 30.3.2011, 18:48
borisbn, Вот примерно вот так вот. Видно, что программа остановлена на строке cout. Кстати, после ее выполнения, выведется пятерка  smile 

Автор: volatile 31.3.2011, 00:38
Mr_Nuke, похоже что у вас переменная А есть где-то в другом месте. и watch выводит ту переменную. Попробуйте дать другое имя, если не поможет скиньте сюда весь код, посмотрим.

Автор: Mr_Nuke 31.3.2011, 07:35
volatile, пожалуйста  smile 

Автор: baldina 31.3.2011, 11:24
должно нормально казать (в VS2010 все ок), но поскольку у Вас не чистый С++, а managed (CLR project), х.з.
может зависит от версии .NET, версии компилятора...

насколько нужен CLR? сделайте нормальный Win32 Console Project и будет Вам счастье

Автор: Mr_Nuke 31.3.2011, 19:44
Цитата(baldina @  31.3.2011,  11:24 Найти цитируемый пост)
сделайте нормальный Win32 Console Project и будет Вам счастье
 
Сделал. Получил много счастья  smile  Спасибо!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)