Member 12620592 Ответов: 3

Место чтения нарушения доступа


ошибка : необработанное исключение в 0x5D8D0918 (Hestia.dll) в Hestia_MFC.exe: 0xC0000005: нарушение доступа к местоположению чтения 0x0C242000.


for (int x_temp = 100; x_temp < 400; x_temp++) { //640 x 512 
  for (int y_temp = 100; y_temp < 400; y_temp++) {
    if ((x_temp % 50) == 0 && (y_temp % 50) == 0) {
				
	try {
	m_Hestia->GetSpot_C(x_temp, y_temp, Hestia::CELSIUS, m_TempData, &spot_temp);
	}
	catch(Exception ex){

	}

    if (spot_temp > max_temp) {//288 -> 296
       max_temp = spot_temp;
       max_pointX = x_temp;
       max_pointY = y_temp;
    }
    if (spot_temp < min_temp) {
       min_temp = spot_temp;
       min_pointX = x_temp;
       min_pointY = y_temp;
    }

}
}


Я вызываю эту функцию каждые 2 секунды.

Я не знаю, почему эта ошибка возникает в моей программе.

Как я могу исправить свою программу?

Я кстати использовать try и Catch. Это не работает ... Помоги мне..

Что я уже пробовал:

пробовать{

}поймать(исключение бывший){

}

3 Ответов

Рейтинг:
2

OriginalGriff

На первый взгляд - и мы не можем запустить ваше приложение, так что это все, что может быть - это либо m_Hestia или параметры вашего вызова к нему GetSpot_C функция.

Используйте отладчик: поставьте точку останова на линию и, когда она попадет, посмотрите на данные: все ли они действительны? Если это так, проверьте параметры с помощью кода на другом конце и посмотрите, что он с ними делает.

Извините, но мы не можем сделать ничего из этого для вас.


CPallini

5.

Рейтинг:
2

CPallini

Цитата:
Я кстати использовать try и Catch. Это не работает ... Помоги мне..
Смотреть также c++ - Перехват исключений нарушения доступа? - переполнение стека[^].


Рейтинг:
1

Maciej Los

В дополнение к решению 1 by OriginalGriff[^], я бы предложил прочитать это: Как я могу отладить нарушение доступа?[^]
Общая причина приведенного выше сообщения об ошибке заключается в том, что вы пытаетесь прочитать из переменной, инициализированной в NULL или установить на NULL через неудачное распределение.


CPallini

5.

Maciej Los

Спасибо, Карло.