Необработанное исключение в 0x758cd36f в OSGP.exe: Microsoft C++ исключение: станд :: bad_alloc в ячейке памяти 0x0028ef70 ..C++ bad_alloc в памяти местоположения Исключение
Я пытаюсь выполнить код ниже в Visual Studio. Тем не менее, я продолжаю работать в исключении выше. Я добавил попытку поймать, чтобы помочь мне поймать ошибку, но бесполезно кажется. Я считаю, что проблема связана с вытекающей из выходного окна
First-chance exception at 0x758cd36f in OSGP.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0019f2f4..
First-chance exception at 0x758cd36f in OSGP.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0019ec84..
First-chance exception at 0x758cd36f in OSGP.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..
The thread 'Win32 Thread' (0x16dc) has exited with code 0 (0x0).
The program '[448] OSGP.exe: Native' has exited with code 0 (0x0).**
Вот код:
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <new>
#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int flag = false;
osgViewer::Viewer viewer;
osg::ref_ptr<osg::Node> root;
try
{
root = osgDB::readNodeFile("cessna.osg");
viewer.setSceneData(root.get());
}
catch(bad_alloc)
{
if (flag) cout << "a bad_alloc exception just occured";
}
return viewer.run();
}
'osgDB :: readNodeFile (" cessna.osg ");' может возвращать nullptr, если он не может открыть файл. FYI, назначающий 'bool' флаг' int', который никогда не используется, также немного глупо ;-) – AJG85
Большая часть вывода - это только отладчик, говорящий вам, что он не может найти файл базы данных программы (символа). –
Включить контрольные точки исключения в 'Debug-> Exceptions ...-> C++ Exceptions', чтобы вы остановились при вызове bad_alloc. – molbdnilo