Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Помомогите разобраться с указателями |
Автор: avitec 15.4.2017, 10:32 | ||
после запуска программы, получаю вывод на экран pint 94, ival 3357. Почему в переменной ival оказалось 3357, если я задавал изначально 1024, если даже это число вышло в 16сс, то должно быть 400 И второе почему pint равно 94, ведь оперативная память записывается через сегмент и смещение например 2345:3456 что обозначает это 94 и в каком сегменте памяти оно находится. Код пишу во FreeDos в BorlandC++3.1 (не эмулятор, чистый FreeDos 1.2 на винте, адреса памяти по идее должны выходить реальные) Для тестирования программы использую turbo debugger 3.0 c дополнительным окном CPU просмотра памяти. |
Автор: vpf 15.4.2017, 10:41 |
Распечатайте в одной строке ival, в другой строке pint Возможно 94:3357 это pint а на ival не осталось места %. И наконец есть же симулятор, пройдитесь по шагам и сразу все станет ясно. |
Автор: avitec 15.4.2017, 12:04 |
Спасибо, вы правы ival вышел нормально как 400 (если в разных строчках) а pint сейчас посмотрю в пошаговом режиме. А как тут плюс/спасибо поставить тому, кто помог с вопросом? Добавлено через 10 минут и 36 секунд И тут вы тоже правы, огромное спасибо в дебуггере сразу вышел и сегмент и смещение 5959:0094 осталось разобраться каким образом вывести прямо в программе числовое значение сегмента 5959? а не заходить в отладчик для просмотра? |
Автор: volatile 15.4.2017, 14:39 |
Автор: avitec 17.4.2017, 07:28 |
спасибо попробую |
Автор: avitec 17.4.2017, 09:14 |
volatile вы оказались правы, большое спасибо, именно в этом и была ошибка. ![]() |