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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 11:10   #1
<gr>
Пользователь
 
Регистрация: 13.11.2011
Сообщений: 11
По умолчанию Цепи Маркова

Добрый вечер!
Реализую алгоритм цепей Маркова. Однако возникла следующая ошибка.

"Project Project2.exe raised exception class EAccessViolation with message 'Acces violation at address 3260274C. Read of address 0073726F'. Process stopped. Use Step or Run to continue."

Нижу представлен фрагмент кода прораммы:

Код:
#define SIZE_PREF 2 struct SuffixWord {
char *word; SuffixWord *next;
} struct Tables {
char *prefix[SIZE_PREF]; SuffixWord *suffix; Tables *next;
} Tables* CreatePrefix( Tables **baseSet, char **prefix ) {
unsigned int key = 0; int i; Tables *temp;
key = HashKey( prefix );
for ( temp = baseSet[key]; temp != NULL; temp = temp->next ) {
for ( i = 0; i < SIZE_PREF; ++i )
if ( strcmp(prefix[i], temp->prefix[i]) != 0 )
break;
if ( i == SIZE_PREF )
return temp;
}
temp = new Tables(); // ОШИБКА!! for ( i = 0; i < SIZE_PREF; ++i )
temp->prefix[i] = new char[1000];
for ( i = 0; i < SIZE_PREF; ++i )
strcpy(temp->prefix[i], prefix[i]);
temp->suffix = NULL; temp->next = baseSet[key]; baseSet[key] = temp; return temp;
}

Ошибка возникает непосредственно при выделении динамической области. Самое интересное, что при первом использовании функции CreatePrefix память выделяется, при втором- вылетает выше указанная ошибка. С чем это может быть связано??
Заранее спасибо за любую помощь)
The truth is out there...

Последний раз редактировалось ACE Valery; 23.02.2012 в 01:44.
<gr> вне форума Ответить с цитированием
Старый 22.02.2012, 20:37   #2
Ливер
Новичок
Джуниор
 
Регистрация: 22.02.2012
Сообщений: 1
По умолчанию марковв

gr
у меня дипломка цепи маркова
помоги
напиши mnj90@mail.ru
Ливер вне форума Ответить с цитированием
Старый 23.02.2012, 00:31   #3
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

попробуйте перед этим кодом, выдающим ошибку, прописать delete temp, т.к. вы уже использовали ранее, вначале очистите, а потом заново создавайте.
Код:
temp = new Tables(); // ОШИБКА!!
Вы пытаетесь создать, уже созданный объект.

Последний раз редактировалось Drugnir; 23.02.2012 в 00:35.
Drugnir вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
резонанс в электрической цепи foxted Помощь студентам 3 25.12.2010 05:14
Алгоритм по нахождению цепи в векторе. DarkWishMaster Паскаль, Turbo Pascal, PascalABC.NET 3 09.12.2010 18:21
Пересекающие цепи Ramirag Помощь студентам 0 22.05.2010 11:04
Программа, которая выполняет расчёт электрической цепи onlyfifa Помощь студентам 1 12.01.2010 16:16