Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Ссылки и указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построение UML http://www.cyberforum.ru/cpp-beginners/thread250365.html
Можно ли создать диаграмму зависимостей UML из существующего проекта VS 2005?
C++ написать программу если можно с объяснением!!!!!!!! http://www.cyberforum.ru/cpp-beginners/thread250357.html
C++ класс эллипс
ПОМОГИТЕ ПОЖАЛУЙСТА, начала изучать с++ столкнулась с такой вот задачей...... Определить класс эллипс, продемонстрировать использование класса. Члены класса: переменные, необходимые для того,...
C++ Сложение, вычитание, умножение
Доброго времени суток! Помогите с задачей: Написать функцию, которая складывает, вычитает или умножает два целых числа и возвращает результат (операнды и знак операции +, – или * — параметры...
C++ Преобразование массива с использованием функции http://www.cyberforum.ru/cpp-beginners/thread250350.html
На языке С написать с помощью функции программу. Задание: Дана матрица А и вектор B. Из сумм элементов строк матрицы сформировать вектор C. Если минимальный элемент вектора C кратен минимальному...
C++ указатель(?) на массив ситуация: мне нужно, чтобы в main был определён двумерный массив, а класс мог бы его использовать: class map { unsigned short int *field; bool isVisiable; public: map(unsigned short int... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,525
Записей в блоге: 26
16.07.2011, 00:08
Цитата Сообщение от silentnuke Посмотреть сообщение
я ж говорю я пока не понимаю откуда память для переменной b берется, ведь как я понимаю, она должна выделяться при создании объекта, а объект то не создается, или я что-то не так понимаю?
Указатель p не инициализировался, а потому там мусорное значение. Звёзды встали так, что этот мусор оказался валидным адресом. И по этому адресу обращение не сломалось, при этом ты записывал в поле a, а потому просто гадил в чью-то память. Опять-таки звёзды встали так, что это оказалось нефатальным.

То, что у тебя цикл бесконечный - по сути ничего не означает. Каждый раз переменная p у тебя лежала в одном и том же месте стека, а потому каждый раз в ней был записан один и тот же мусор. А следовательно ты каждый раз гадил в одну и ту же память. Т.е. что цикл из одной итерации, что из бесконечного количества - в данном случае роли не играет

Добавлено через 2 минуты
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
То есть, у тебя указатель не инициализирован, а ты пытаешься вызвать метод через него
Конкретное значение указателя роли не играет, ибо на вызове метода это никак не отражается (см. по ссылкам из поста #24). Реальная засада могла быть только при записи в поля a и b. Но, как уже писал выше, звёзды встали так, что мусорное значение оказалось валидным адресом, нагадив по которому ничего страшного не произошло
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru