这是代码: 功能:
QString printDir2(QString path, int level)
{
int check =1;
QDir folder(path);
QString space;
QString buffer;
qDebug() <<"nivelul 1 \n";
for(int i=0; 1<level; i++)
space +=" ";
qDebug() <<"nivelul 2 \n";
foreach(QFileInfo temp , folder.entryInfoList())
{
if(check > 2)
{
qDebug() <<"nivelul 4 \n";
buffer += space + temp.absoluteFilePath() + "\n";
if(temp.isDir())
buffer += printDir2(temp.absoluteFilePath(), ++level);
}
check++;
qDebug() <<"nivelul 3 \n";
}
return buffer;
}
在这里我称之为功能:
QString drum="/home/sunny/Desktop/QT/descarca";
str=printDir2(drum,0);
qDebug()<<str<<"acesta este drumul";
如何从终端修复此erorr:
抛出'std :: bad_alloc'的实例后调用terminate():std :: bad_alloc
当我运行代码时,这是终端:http://s013.radikal.ru/i325/1501/e5/aade9346f0aa.png
答案 0 :(得分:0)
您可能遇到无限递归。
在调试器中运行您的程序。如果您使用gdb,则可以在catch throw
之前发出命令run
。然后调试器将在抛出异常时停止。您可能需要移动up
几次,以查看代码中的哪一行引发了异常。