Помогите пожалуйста разобраться с указателями?

include <stdio.h>

include <windows.h>

include <conio.h>

int main(void)
{
int ival = 1024;
int *pint; // указатель на объект типа int
pint = &ival; // pint получает значение адреса ival
printf(«pint %x, ival %x\n»,pint,ival);
return 0;
}
после запуска программы, получаю вывод на экран pint 94, ival 3357. Почему в переменной ival оказалось 3357, если я задавал изначально 1024, если даже это число вышло в 16сс, то должно быть 400
И второе почему pint равно 94, ведь оперативная память записывается через сегмент и смещение например 2345:3456 что обозначает это 94 и в каком сегменте памяти оно находится. Код пишу во FreeDos в BorlandC++3.1 (не эмулятор, чистый FreeDos 1.2 на винте, адреса памяти по идее должны выходить реальные)

А этот форум рабочий?

Рабочий, но он в самой далекой дырке Интернета находится.
Ну и под DOS уже редко где пишут.
Разве что в старых контроллерах.
Но и там оно не особо популярно.

Попробуйте для указателя %p, а для int'а — %d.

avitec, у вас ошибки в спецификации формата в printf.

#include <stdio.h>

int main(void) {
    int ival = 1024;
    int *pint; // указатель на объект типа int
    pint = &ival; // pint получает значение адреса ival
    printf("pint %p, ival %d\n", pint, ival);
    return 0;
}

Интересно, если код написан под голый DOS, зачем включается заголовок «windows.h»?
А Borland C++ 3.1 вообще-то знает про Windows?

Форум рабочий. Извините, что не ответили на ваше обращение в течение пяти минут.

Извините, что не ответили на ваше обращение в течение пяти минут.

Негодяи )))

Спасибо за помощь. Получил задание переделывать под себя драйвер платы для согласования интерфейсов http://www.elcus.ru/index.php?ID=news а поскольку работу выбирает работодатель, то спорить не приходится, нужно эту работу работать. Вы правы информации по досу уже мало, да и на с++ это мой первый проект, поэтому вынужден брать любой код с примерами, проверять его на каком то примитивном примере и затем уже разобравшись как это работает, вносить в рабочую программу, поэтому оказался этот файл «windows.h» я конечно сомневался нужен он или нет, но решил не трогать, хуже не будет, вот дольше это да. Вы не обижайтесь, претензий нет, что ответили не быстро, просто я писал первый раз и не знал как быстро у вас приходят ответы, извините пожалуйста если нечаенно обидел.

Croessmah вы не пробовали обратиться к психотерапевту? Еще не поздно, вам могут помочь, у вас явно повышенная агрессия на людей.

Еще не поздно, вам могут помочь, у вас явно повышенная агрессия на людей.

А где я здесь агрессивничал? :)
Вроде бы ответил Вам.

вы не пробовали обратиться к психотерапевту?

Мой психотерапевт сам записался к психотерапевту.
Кстати, вот Вам тоже не помешает к нему сходить,
а то Вы на другом форуме о себе в третьем лице отзываетесь. )))

поэтому вынужден брать любой код с примерами, проверять его на каком то примитивном примере и затем уже разобравшись как это работает, вносить в рабочую программу

Учтите, что под разными платформами некоторые
вещи могут работать по-разному,
так что лучше всё проверять на целевой платформе,
если есть такая возможность.

Кстати, вот Вам тоже не помешает к нему сходить, а я хожу иногда на тренинги, это кстати очень интересно и познавательно. Извините, действительно на этом форуме вы написали все корректно, просто я уже жду от вас подвоха, напугали меня на киберфоруме... *вещи могут работать по-разному,
так что лучше всё проверять на целевой платформе, * это все верно, но проблема в том что в силу специфики работы, этот комп не в сети и без инета, и каждый раз таскать туда код через флешку напрягает, поэтому быстрее и проще работать именно так. А вот это было не агрессия, а тонкий юмор *

Извините, что не ответили на ваше обращение в течение пяти минут.Негодяи ))) *

Помогло вот это printf("pint %p, спасибо большое.

Извините, действительно на этом форуме вы написали все корректно, просто я уже жду от вас подвоха, напугали меня на киберфоруме...

Я там модератор, Вы — нарушитель.
И наша банда маленькая,
а ваша — просто огромная.
Там можно сидеть несколько часов, пытаясь навести
порядок и не уйти дальше первой страницы.
И, соответственно, к нарушителям просыпается
лютая ненависть, особенно когда нарушитель не
студент-дурак-однодневка, а пользователь,
который не первый год на форуме и всё
равно продолжает специально нарушать правила.
Ненависть эта действует только на пользователя,
ну и на человека, в пределах форума.
Человек может быть просто обижен на
какой-то форум и гадить на нем постоянно,
а на других форумах такого не делать.
Так зачем нести всю эту ношу на другой форум?
Нормальный вопрос — нормальный ответ.
Кидаться на него из-за того, что где-то там
на другом форуме кто-то кого-то
забанил — глупо, мне каюется.

и каждый раз таскать туда код через флешку напрягает, поэтому быстрее и проще работать именно так.

Знакомо. )))
Тогда таскать лучше большие куски отлаженного кода.

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

Ваш работодатель неадекват. Сочувствую.

Пожалуйста в будущем оформляйте в посте код с использованием трех обратных кавычек. А то и читается тяжело, и при преобразовании текста движком сайта вносятся изменения.

Ваш работодатель неадекват. Сочувствую.

Часто работа и софт привязаны к железу.
Мы вот, например, не можем слезть с Windows XP,
потому что софт не работает под другими ОС.

Я не про это.
Человеку, не знающему С, влегкую поручают «переделать под себя драйвер платы». Чувствуется крепкий армейский дух.

Дело не в духе, просто в данном месте, так сложилось исторически, что программисты в пропорции к конструкторам 1:20, поэтому разбежаться во первых негде, а во вторых до меня аналогичную работу как раз и делали под виндой, это логично и на первый взгляд правильно, современные технологии, готовый драйвер, минимум изменений и все готово, ан нет, время показало, что готовый виндовый драйвер не все временные параметры железа выдерживает иногда, а отсюда возникают проблемы, а соотношение все тоже, примерно 1:20 и где найти быстро готовых людей и не только готовых, а еще и узко заточенных, а зарплата не та, что бы любой взял и пошел, и опять же сроки, так что не так все просто в этой жизни и старый добрый дос может быть даже поможет, но хуже точно не будет, пока есть форумы и люди на них в основном помогают... к сожалению не все можно обьяснить зачем и почему и начинают пальцы гнуть на некоторых форумах, я не про этот, тут как то сразу по человечески подошли с пониманием...

Работодатель адекват, просто исходя из предыдущего ошибочного опыта, выбирается другой какой то наиболее подходящий вариант, а времени на ОКР особо не дают, когда увязаны между собой разные структурные подразделения и не только. Еще и другие ПО и плюсом свое железо, без ОКР это трудно все просчитать, приходится все делать на лету. А с драйверами повезло, на платы есть драйвера всей линейки операционок, начиная от доса в том числе, причем что приятно, очень качественный код, работает стабильно хоть и прошло уже лет 15. Минус в том, что форум у разработчика не очень активный, хотя с другой стороны то что сделано у них, это все работает стабильно и правильно, а где мы собираемся использовать их платы, это им зачем, это уже не их проблемы, вот приходится искать помощь на стороне, тут например...

Человеку, не знающему С, влегкую поручают «переделать под себя драйвер платы». а что касается этого человека, то этот человек уже не раз брал новое ПО и спокойно делал то что надо, хотя другие до него сдавались и не делали и опять же я не хвалю сам себя, а просто некому больше делать, приходится идти на форум, валять там дурака, что бы объяснили Азы, а дальше уже проще, примеры+литература+время+свой предыдущий опыт и ничего, все решаемо... так же получилось и с киберфорумом пришлось косить, что бы без лишних обьяснений быстрее объяснили прописные истины по с++, пришлось правда с эти форумом распрощаться, но работа работается и дело движется, а победителей не судят, все равно других людей пока нет.

Пожалуйста в будущем оформляйте в посте код с использованием трех обратных кавычек я постараюсь так делать, спасибо за помощь.

Я там модератор, Вы — нарушитель. признаюсь виноват, нарушал специально, что бы привлечь к себе внимание, на 90% оскорблений, 10% спецов помогали, в результате быстрее оказывали помощь, может я и не прав, но мне казалось так будет быстрее, старался нарушать правила не сильно, на грани, что бы и не выгнали совсем и что бы помогали. По опыту из личной жизни знаю, что если задеть человека, то он быстрее среагирует и если кто то пошлет, то кто то и поможет. Хуже когда напишешь на форум. а там или игнорируют или молчат или напишут какую-то ерунду, а в общем журнале будет видно что ответ есть и больше никто не заходит и не помогает.

Тут я пишу честно и все объясняю на сколько умею и правила не нарушаю. Уже появился некоторый опыт и могу корректнее задавать вопросы, в надежде получить ответы.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.