Я работал с Visual Studio 2008 в C-проекте без проблем.Теперь я добавил те же исходные файлы в Visual Studio 2010, скомпилировал его без проблем, но при отладке программы получаю:
Необработанное исключение в 0x00417257 в da34.exe: 0xC0000005: Место чтения нарушения доступа 0x00030000.
Глядя на код, я просто вижу это:
; Find next lower page and probe
cs20:
sub eax, _PAGESIZE_ ; decrease by PAGESIZE
test dword ptr [eax],eax ; probe page.
jmp short cs10
_chkstk endp
end
и он указывает на строку "пробной страницы"
Знаете ли вы, в чем может быть причина?Моя программа очень проста.
Спасибо
ОБНОВЛЕНИЕ:
Я нашел "причину" ошибки, сначала прокомментировав содержимое основных функций, затем прокомментировав половину и т. Д.Программа состоит из одного .c и одного .h файла.В файле .h тип определяется следующим образом:
typedef FLOAT_TYPE d_elem[NMAX][NMAX][3];
, в файле .c в основной функции, только когда переменные определены, есть строка вроде:
d_elem d_m;
Если я прокомментирую эту строку, ошибка исчезнет.Я нахожу это странным, что здесь происходит?Конечно, вся программа компилируется и запускается с GCC в Linux без этих проблем.
UPDATE2: Решение (глупое) состоит в том, чтобы увеличить размер стека резервных копий для параметров проекта, компоновщика и т. Д. Кстати, идиот.VS 2008 с теми же опциями по умолчанию запускает программу ok