Программное обеспечение

Ошибка??? Инструкция по адресу ,,0х0327600с, , обратилась к памяти по адресу ,,0х0327600с,,. Память не может быть ,,read,,.

AA
Andrei Altuhov
31 650
Возможно это действительно обращение к заголовку (64K), но возможно, если ошибка часто повторяется с разным набором запущенных программ, глючит Windows DEP (это система предотвращения выполнения данных, когда программа пытается обратиться к сегменту данных как к сегменту кода (не важно, забей :^)). Отключить её можно здесь: Мой компьютер - Свойства - Дополнительно - Быстродействие - Предотвращение выполнения данных.

Ещё почитай здесь.

Ещё, простите, Honestus, но не могу не сказать по поводу "склеротических" вызовов функций. :^) Это может произойти только если писать непосредственно на ассемблере, да и то ещё неизвестно, т. к. если аргументы в стэк поступают не в обратном порядке, как в C, а как в паскале, в прямом, то при выходе за пределы блока аргументов функция просто считает данные из неопределённой области, но ошибку это не вызовет, т. к. стэк весь readable. Ни один же компилятор ЯВУ такое не пропустит, а даже если пропустит (параметры по умолчанию) , то функция просто получит значения по умолчанию, или, в крайнем случае, 0. Вернёт она результат в любом случае, вне зависимости от наличия return в коде - просто при его отсутствии это будет тоже 0 (или void, или null - зависит от того, на чём написано) . Если что, извиняюсь, ничего личного, просто небольшой комментарий. :^)
ГШ
Геннадий Шек
803
Лучший ответ
Это баги программ.
В Винде программы действительно не могут обращаться к первым 64K их адресного пространства. Если прога пытается считать ("read") или записать ("write") что-либо в эти килобайты возникает исключение. Если программа не обрабатывает это исключение, винда делает вывод, что программа глючит, и, чтобы та не натворила ничего страшного, выводит это сообщение и завершает глючащую программу. Это возникает когда какая-либо внутрипрограммная функция "забывает" передать выходные параметры другой функции. Пример
function blablabla (int x)
{
....
<тут бы надо return y>
}
а возврата нет. Вот последующая функция и не знает, гда параметров набраться.
Михаил Комаров
Михаил Комаров
66 072
Память не может быть read - варианты решения проблеммы можете почитать на этом форуме

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