0

Мой код VC++ работал (исполняется) отлично в порядке & сейчас я не понимаю, почему я получаю сообщение об ошибке «Ошибка отладки».Получение ошибки «Ошибка отладки с ошибкой» внезапно, без какого-либо изменения кода. (В коде C++)

file:f\dd\vctools\crt_bld\self_x86\crt\src\fclose.c. 

Я использую VS2008 на 64-разрядной ОС WIn7.

Возможно, причина в том, что код, работающий нормально, начал внезапно нарушаться без каких-либо изменений кода?

Может ли кто-нибудь помочь мне в избавлении от этой ошибки?

Я видел в стеке вызовов, что код до этого находится в файле

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt\src\crt0dat.c 
while (pfbegin < pfend)    
    {     
     /*    
     * if current table entry is non-NULL, call thru it.    
     */      
     if (*pfbegin != NULL)     
      (**pfbegin)();    
     ++pfbegin;      
    }       

И да, fclose() получающего нулевой указатель файла. Я серьезно не понимаю, почему это становится неправильным значением указателя файла, внезапно, без каких-либо изменений в коде или в среде.

+4

Угадай: файл, открытый соответствующим 'fopen()' failed, завершился тем, что пустой указатель передан в 'fclose()'? – hmjd

+0

Можете ли вы отправить любой соответствующий фрагмент кода (строки кода до утверждения не удались)? –

+0

Да, я редактировал необходимый код в своем вопросе. :) – codeLover

ответ

0

Не могли бы вы предоставить код, который вызывает fclose()? Я могу догадаться, что fopen() не смог открыть файл, возвращающий NULL, например. потому что файл не существует. Вы не проверили эту ошибку и передали дескриптор NULL на fclose().

+0

Я наблюдаю в стеке вызовов, что вызывающий si не упоминает dproperly. Это опять-таки стандартный стандартный Microsoft-файл, а не мой код. И 1 СТРАН, КОТОРЫЙ Я НАБЛЮДАЛ, ЧТО ДАЖЕ ЕСЛИ Я ПРЕССА F10 ДЛЯ ЛИНИИ ПОЛУЧЕНИЕ ЛИНИИ НАСТОЯЩЕГО НАПРАВЛЕНИЯ НАСТОЯЩЕГО «УБЕДИТЕСЬ, ЧТОБЫ УСТРАНЕНИЕ НЕПОСРЕДСТВЕННОЙ ОШИБКИ» НЕ СОБИРАЕТСЯ ЧТО-НИБУДЬ ПРАВИЛЬНО. Очень странное поведение! – codeLover

+0

Если вы продолжаете читать стоп-колл, вы должны получить свой собственный код в какой-то момент или у вас есть полностью разбил стек каким-то образом. – molbdnilo

+0

Если я продолжаю спускаться в стеке вызовов, я просто нахожу некоторые Dll, для которых нет кода снова для dll. мой VS настроен на повреждение? Будет ли он работать, если я переустановить VS2008? – codeLover