Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2012, 15:09   #1
8inch_ofTerror
Новичок
Джуниор
 
Регистрация: 30.07.2012
Сообщений: 4
По умолчанию Ошибка доступа?

Пишу некое подобие телефонной книги.. Возникают проблемы с доступом..
Ниже код класса и его методов

В функции main Ругается на строку
Код:
ContactBook *cBook=ContactBook::instance();
В чем может быть дело?

Файл ContactBook.hpp
Код:
#include "Card.hpp"

class ContactBook {
public:
	ContactBook();
	~ContactBook();
	static ContactBook *instance();
	Card **bookArray;
	void printAll();
	static ContactBook *_cBook;
private:
	
	
};
Файл ContactBook.cpp
Код:
#include "ContactBook.hpp"

ContactBook *ContactBook::_cBook=NULL;


ContactBook *ContactBook::instance(){
	if (!_cBook) {
		_cBook=new ContactBook;
	}
	return _cBook;
}

ContactBook::ContactBook(){
	bookArray=new Card*[500];
	bookArray[0]->firstName="Вася"; bookArray[0]->lastName="Петечкин"; bookArray[0]->telNumber="2456765"; 
	bookArray[1]->firstName="Гена"; bookArray[1]->lastName="Гусев"; bookArray[1]->telNumber="2422265";
	bookArray[2]->firstName="Дима"; bookArray[2]->lastName="Раздолбаев"; bookArray[2]->telNumber="5782823";
	bookArray[3]->firstName="Женя"; bookArray[3]->lastName="Котина"; bookArray[3]->telNumber="2665433";
	bookArray[4]->firstName="Захар"; bookArray[4]->lastName="Петечкин"; bookArray[4]->telNumber="1002001";
	bookArray[5]->firstName="Коля"; bookArray[5]->lastName="Васечкин"; bookArray[5]->telNumber="3000200";
}

ContactBook::~ContactBook(){

}



void ContactBook::printAll(){
	for(int i=0; i<sizeof(bookArray);i++){
	if (bookArray[i]) bookArray[i]->print();
	}
}
8inch_ofTerror вне форума Ответить с цитированием
Старый 30.07.2012, 18:07   #2
plgrm44
Пользователь
 
Регистрация: 29.05.2012
Сообщений: 23
По умолчанию

>>Возникают проблемы с доступом..
если точно скопируете ошибку компилятора, то будет более понятно
plgrm44 вне форума Ответить с цитированием
Старый 30.07.2012, 20:32   #3
8inch_ofTerror
Новичок
Джуниор
 
Регистрация: 30.07.2012
Сообщений: 4
По умолчанию

Пишет : Ошибка доступа по адресу "тут какая то бессмысленная дребедень"
А в самом коде указывает на строку которую назвал выше
8inch_ofTerror вне форума Ответить с цитированием
Старый 30.07.2012, 20:54   #4
plgrm44
Пользователь
 
Регистрация: 29.05.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от 8inch_ofTerror Посмотреть сообщение
Пишет : Ошибка доступа по адресу "тут какая то бессмысленная дребедень"
А в самом коде указывает на строку которую назвал выше
компилятор на русском языке что-ли? Поставьте англ. версию, тогда ясно будет)
plgrm44 вне форума Ответить с цитированием
Старый 30.07.2012, 21:11   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
new ContactBook;
Может тут скобочки () нужны?
Ты же конструктор вызываешь, так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2012, 21:11   #6
8inch_ofTerror
Новичок
Джуниор
 
Регистрация: 30.07.2012
Сообщений: 4
По умолчанию

там адрес написано что то вроде x000234 такого
8inch_ofTerror вне форума Ответить с цитированием
Старый 31.07.2012, 12:03   #7
8inch_ofTerror
Новичок
Джуниор
 
Регистрация: 30.07.2012
Сообщений: 4
По умолчанию

Скобки проблему не решили.

Первый этап обработки исключения в "0x000b3186" в "ContactBook.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde5".
Необработанное исключение в "0x776115de" в "ContactBook.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde5".
Программа "[9780] ContactBook.exe: Машинный код" завершилась с кодом -1073741819 (0xc0000005).
8inch_ofTerror вне форума Ответить с цитированием
Старый 31.07.2012, 12:10   #8
plgrm44
Пользователь
 
Регистрация: 29.05.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от 8inch_ofTerror Посмотреть сообщение
Скобки проблему не решили.

Первый этап обработки исключения в "0x000b3186" в "ContactBook.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde5".
Необработанное исключение в "0x776115de" в "ContactBook.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde5".
Программа "[9780] ContactBook.exe: Машинный код" завершилась с кодом -1073741819 (0xc0000005).
так это еще и исключение, а не ошибка компилятора, как я сначала подумал...

0xCDCDCDCD : Used by Microsoft's C++ debugging runtime library to mark uninitialised heap memory

вы создаете указатели на Card, но не сами объекты Card
Код:
bookArray=new Card*[500];
bookArray[0] = new Card();
bookArray[0]->firstName="Вася"; bookArray[0]->lastName="Петечкин"; bookArray[0]->telNumber="2456765";

Последний раз редактировалось plgrm44; 31.07.2012 в 12:25.
plgrm44 вне форума Ответить с цитированием
Старый 31.07.2012, 23:20   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

пользуемся отладчиком, не?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка доступа к памяти FantaC Общие вопросы C/C++ 4 24.02.2012 00:14
ошибка доступа ego30 Помощь студентам 2 06.07.2011 21:05
Ошибка доступа к памяти Dmitry333 Компоненты Delphi 12 30.03.2011 15:27
Ошибка доступа к памяти AzoTik Общие вопросы Delphi 6 22.01.2010 10:17