Как исправить ошибку: Необработанное исключение по адресу...

Рейтинг: 0Ответов: 1Опубликовано: 23.03.2015

Такое сообщение: Необработанное исключение по адресу 0x00A8AF69 в ConsoleApplication5.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x005BF000.

Я выполнил трассировку, стрелка указала на восьмую строчку. Бесконечного цикла, как мне кажется, нет. Да и массив создан динамический. В чем ошибка?

  { 
  int i, j, k, pos = -1, N, M;
  int *d = new int;//Массив сдвигов
  N = s.length();
  M = find.length();
  clock_t t0 = GetTickCount(); // начальное время
  // Формирование таблицы сдвигов d
  for(i = 0; i <= N; i++)
  d[i] = M;
  for(i = 0; i < M - 1; i++)
  d[find[i]] = M - i - 1;
  // Поиск образца P в тексте S
  i = M;
  do{
  k = i;
  j = M;
    do
{
  j--;
  k--;
}
while(j >= 0 && s[k] == find[j]);
if(j == -1)
  pos = i - M;
else
  i += d[s[i - 1]];
 }
 while(i <= N && j >= 0);
 if(j > -1)
 cout << "Образец найден по смещению pos : " << pos-1 << endl; 
 else 
 cout << "Образец не найден" << endl;
 clock_t t1 = GetTickCount();// конечное время
 cout << "Время поиска : " << (double)(t1 - t0)/1000 << endl;// время поиска
 }
 system("pause");
 return 0;
 }

Ответы

Ответов пока нет.