Задать вопрос

Что происходит с указателем?

Пишу курсач. Возникла весьма странная проблема.
// Метод возвращает указатель на объект Account. Валидный, инициализированный объект, я вас уверяю на 99.99%.
Account* acc = e.getAccount();
// При попытке вызвать метод от этого указателя, указатель чудесным образом превращается... в 0xCCCCCCCC. Что простите???
User u = acc->getUser();

Скрин 1. Перед выполнением метода. (указатель 'acc' ссылается на область, занимаемую объектом Account)
607bc2900f9e4a9dbe8df4a60f4d6d64.png
Скрин 2. Непосредственно вызов метода.
7ed1d0bf461348c1bf25660a6cdcdd34.png
ЧЯНТД?

Если это облегчит ситуацию, или P.S.:
1. В коде используется friend-класс.
2. Там 2 проекта. Первый это DLL-библиотека, там весь код. Второй - исполняемый exe, к которому подключена эта DLL.
3. Это моя первая программа на плюсах, уж сильно не ругайте.
4. Класс Engine создает (и хранит указатель на) класс Account, а класс Account получает (и хранит) указатель на класс Engine.
5. Весь проект не выложу, там 20+ классов и много кода.
  • Вопрос задан
  • 242 просмотра
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
15432
@15432
Системный программист ^_^
Возможно, getUser находится в библиотеке, и у студии просто возникли проблемы с отладкой либы. (например, символов нет). Возвращается нормальный объект User?

Ну или такой экзотический вариант как Engine e объявлена локально и самоуничтожилась до вызова getUser, удалив заодно и Account внутри себя. (попробуйте Engine через new создать)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы