メモリを割り当てるクラスがあります。例えば:
class image {
public:
image(){
pixelvalue = 0;
}
void formatandcopy() {
pixelvalue = new int [10000*50000];
if(pixelvalue)
qDebug()<<"allocation successful";
else
qDebug()<<"allocation failed";
}
private:
int *pixelvalue;
};
formatandcopy()
プログラムを呼び出すと、次のようになります。
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
誰かが私がこれを防ぐ方法を知っていて、それが単にメモリ不足であることをユーザーに知らせますか?これを実行すると、表示されませんallocation failed
。上記のエラーは、qDebug()
が呼び出される前にスローされます。割り当てられたメモリの量が減ると、プログラムは正常に実行されます。new
qt関数ではなく演算子を使用するとこのエラーがスローされるため、これは奇妙だと思いました。さらに、私のマシンには十分なメモリが残っています。これは、qtがプログラムを特定のヒープスペースに制限した結果だと思います。最後に、関数を実際に再実装することでこれを修正できる場合、notify
誰かがこれを行うための正しい方向に私を向けることができますか?