Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
BFB
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 9
#1

0xC0000005 или что делать дальше - C++

10.10.2012, 11:31. Просмотров 1607. Ответов 20
Метки нет (Все метки)

Достался по наследству СТАРЫЙ код, смесь С и С++, перенес его на VS 2008.
При запуске в режиме отладки возникает собственно ошибка, указанная в теме.

Cal stack:
ntdll.dll!776be3be()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!776be023()
msvcrt.dll!754a98cd()
> ENGINE.exe!_heap_alloc_dbg_impl(unsigned int nSize=52844184, int nBlockUse=0, const char * szFileName=0x00000000, int nLine=2130567168, int * errno_tmp=0x0018fb78) Line 497 + 0xc bytes C++
ENGINE.exe!std::_DebugHeapDelete<std::locale>(std::locale * _Ptr=0x03265698) Line 61 + 0x9 bytes C++
ENGINE.exe!std::basic_streambuf<char,std::char_traits<char> >::~basic_streambuf<char,std::char_traits<char> >() Line 43 + 0xc bytes C++
ENGINE.exe!std::basic_filebuf<char,std::char_traits<char> >::~basic_filebuf<char,std::char_traits<char> >() Line 120 + 0xf bytes C++
ENGINE.exe!std::basic_fstream<char,std::char_traits<char> >::~basic_fstream<char,std::char_traits<char> >() Line 901 + 0xb bytes C++
ENGINE.exe!std::basic_fstream<char,std::char_traits<char> >::`vbase destructor'() + 0x17 bytes C++
ENGINE.exe!READ_VANES(char * NAME_FILE=0x010506ae, VANE * & vane=0x016b1928, VAR & var={...}) Line 72 + 0x15 bytes C++
ENGINE.exe!COMPRESSOR::SET_VAR() Line 168 + 0x20 bytes C++
ENGINE.exe!COMPRES(COMPRESSOR & PC={...}) Line 31 C++
ENGINE.exe!main() Line 67 + 0x1b bytes C++
ENGINE.exe!__tmainCRTStartup() Line 266 + 0x19 bytes C
ENGINE.exe!mainCRTStartup() Line 182 C
kernel32.dll!7556339a()
ntdll.dll!776c9ef2()
ntdll.dll!776c9ec5()

Код функции на выходе, которой код падает:
C++
1
2
3
4
5
 int READ_VANES(char *NAME_FILE , VANE *&vane , VAR  &var)
{
    std::fstream datafile;
    return 1;
}
В коде убрал все комментарии, т.е. как я понял при инициализации переменной datafile, создается
буфер или даже два судя по стеку вызовов, которые перед выходом из функции подчищаются, но не правильно.

Вопрос собственно, что сделать в данном случае?
Может использовать чистый Си?

Заранее благодарен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2012, 11:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 0xC0000005 или что делать дальше (C++):

Что дальше делать? - C++
Я тут недавно начал изучать с++ и изучил основы языка и немного порешал легких задач. Не подскажите ли мне какие книги прочитать для более...

что делать дальше? Класс Книга. - C++
Помогите разобраться с тем, что делать дальше... Создать класс КНИГА с атрибутами: название, автор, кол-во страниц. Реализовать методы:...

И что делать дальше?Поделитесь опытом - C++
Итак вопрос немного необычного характера. Дела обстоят так: 1) В университете нам вообще не преподают нормально програмирование 2)Я...

Прошел книгу Шилтда, что делать дальше? - C++
Прошел книгу Шилтда, C++: Begginers Guide. Могу ли я перейти быстро на С# и писать на unity? Стоит ли мне все все все бросить и читать...

Нарисовать ромб через цикл,почти сделал,не могу понять что делать дальше - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; int main() { int N,i; N=10; for...

Что мне делать или что надо знать перед тем как начать изучение яз.программирования С/С++? - C++
Я пока вообще не умею программировать.Сначала хотел с бейсика или паскаля.Но многие советуют начинать сразу с С/С++.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
12.10.2012, 00:37 #16
BFB, Может стоит закрывать файл перед выходом из функции?
algoritm256
9 / 9 / 1
Регистрация: 05.02.2012
Сообщений: 147
Записей в блоге: 1
12.10.2012, 06:21 #17
Попробуйте перед return поставить datafile.close();
BFB
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 9
12.10.2012, 12:14  [ТС] #18
Не помогло, использование datafile.close(); так же, как и использование datafile.rdbuf()->close();
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
12.10.2012, 12:37 #19
Могу предложить fastfix (временный костыль) просто, чтобы работало. Потом время будет - разберешся.
C++
1
2
3
4
5
int READ_VANES(char *NAME_FILE , VANE *&vane , VAR *&var)
{
    std::fstream *datafile = new std::fstream();
    return 1;
}
будет небольшой memleak, но зато будет работать (если дело в деструкторе).
BFB
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 9
12.10.2012, 15:06  [ТС] #20
Цитата Сообщение от Kastaneda Посмотреть сообщение
Могу предложить fastfix (временный костыль) просто, чтобы работало. Потом время будет - разберешся.
C++
1
2
3
4
5
int READ_VANES(char *NAME_FILE , VANE *&vane , VAR *&var)
{
    std::fstream *datafile = new std::fstream();
    return 1;
}
будет небольшой memleak, но зато будет работать (если дело в деструкторе).
Конечно это работает, спасибо. Но как убрать эти подвисшие объекты?

По мне так проще отказаться от С++ решения ввода-вывода.

И еще есть мысль, что, возможно, pgmalloc.dll каким-то образом заменяет Сишные функции по работе с памятью или еще как-то.

Добавлено через 13 минут
Цитата Сообщение от BFB Посмотреть сообщение
И еще есть мысль, что, возможно, pgmalloc.dll каким-то образом заменяет Сишные функции по работе с памятью или еще как-то.
Ошибка, pgmalloc.dll не при чем.

Добавлено через 12 минут
Убрал все PGI'ные либы, которые были за ненадобностью запиханы в проект, и заработало.
В чем ошибка была, я так и не понял.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
12.10.2012, 17:01 #21
BFB, Возможно в них переопределялось что нить. Или еще какая-то черная магия.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2012, 17:01
Привет! Вот еще темы с ответами:

подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать - C++
Вывод В выходной файл выведите одно число - сколько ударов сделали часы за этот отрезок времени.

Не работает библиотека, что делать? Или где ее скачать для Visual Studio C++ 2013? - C++
У меня библиотека &quot;keygen.h&quot; не открывается:cry:почему:wall:как можно исправить или где скачать файлы? Вот ссылка на ошибку:help: ...

помогите пожалуйста задать прямые с помощью структур прямые задаются точкой и направляющим вектором. дальше как делать знаю - C++
Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве. прямые задать с помощью структур. результат вывести на...

Что дальше - C++
Здравствуй те Господа программисты ! Хотел бы спросить следующее - более или менее ( не мне судить ) изучил с++ , ооп , и не мало...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.10.2012, 17:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru